gpt4 book ai didi

javascript - 如何应用向 Ramda 中的每个列表项返回 promise 的函数

转载 作者:行者123 更新时间:2023-11-28 14:36:51 25 4
gpt4 key购买 nike

我有一个名称列表,每个名称都需要从 Firebase 进行数据库提取。 FireStore get 函数返回一个 promise 。

我如何将其输入到 Ramda 中?我尝试过 ComposeP/pipeP,但我需要它们在循环中工作。

我认为我错过了一些明显的东西,因为我刚刚进入函数式编程。

任何帮助或指示将不胜感激。

最佳答案

我不太清楚您在寻找什么,但乍一看我相信您只需要Promise.all。这是一个简单的解决方案,它模拟 Firebase 并通过 Firebase 调用组合 Promise.all 。 1 秒延迟后,它应该记录正确的值。

const people = {
barney: {name: 'Barney Rubble', id: 1},
betty: {name: 'Betty Rubble', id: 2},
fred: {name: 'Fred Flintstone', id: 3},
wilma: {name: 'Wilma Flintstone', id: 4}
}

const FakeFirestore = {
get: name => new Promise(r => setTimeout(_ => r(people[name]), 1000))
}


const getAll = R.compose(Promise.all.bind(Promise), R.map(FakeFirestore.get))

getAll(['betty', 'wilma']).then(R.map(console.log))
<script src="//cdnjs.cloudflare.com/ajax/libs/ramda/0.25.0/ramda.js"></script>

但请注意,Ramda 调用在这里并不是特别重要。 getAll 也可以写成 const getAll = names => Promise.all(names.map(FakeFirestore.get))

关于javascript - 如何应用向 Ramda 中的每个列表项返回 promise 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49575988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com