【发布时间】:2019-01-05 04:39:36
【问题描述】:
所以,我正在使用 NodeJS 和 Ramda,并且我有一个对象数组,例如:
[
{
x: 'abc',
y: []
},
{
x: '123',
y: [1, 2, 3]
}
]
然后我想在返回承诺的请求中使用x,从而导致这个(使用来自 Ramda 的 over 和 lensProp):
[
{
x: Promise<String>,
y: []
},
{
x: Promise<String>,
y: [1, 2, 3]
}
]
现在我想把最后一个数组变成这样:
Promise<[
{
x: String,
y: []
},
{
x: String,
y: [1, 2, 3]
}
]>
我怎样才能以函数式的方式实现这一点(如在函数式编程中,而不是像在正常工作的东西中 =])?
我能想到的最好的办法是从x 获得所有承诺,使用Promise.all 并使用then 到zip,结果返回ys。但我不接受将其作为解决方案。
【问题讨论】:
-
Promise.all(array.map(({x,y})=>x.then(x=>({x,y}))));
标签: javascript node.js functional-programming ramda.js