【发布时间】:2021-12-05 13:24:14
【问题描述】:
我有一些功能,
const firstResult = await firstFunction(parameters)
const secondResult = await secondFunction(firstResult)
const finalResult = await finalFunction(secondResult)
它们是异步函数,返回一些承诺。现在有一个场景,比如我有一个参数数组,在每次迭代时传递给`firstFunction,它应该遵循相同的执行流程。像这样的:
const results = arrayOfParamters.map(async parameter => {
const firstResult = await firstFunction(parameters)
const secondResult = await secondFunction(firstResult)
const finalResult = await finalFunction(secondResult)
return finalResult
})
那么我怎样才能更有效地做到这一点呢?我可以想象的一个有效解决方案是为第一个parameter 执行firstFunction,开始执行secondFunction,直到实现secondFunction 的承诺,开始为下一次迭代执行firstFunction arrayOfParameters。有什么办法可以做到这一点?如果整个循环要同步执行,似乎Promise.all 将不值得。
【问题讨论】:
-
检查this
-
您有什么证据表明当前代码效率低下?你看到缓慢了吗?这对我来说似乎是过早的优化。
-
@ZloiGoroh 是的,明白了。 allSettled 更适合我的用例。谢谢!
-
@HereticMonkey 这是过早的优化。我很好奇有什么方法可以进一步优化。对不起
标签: javascript node.js asynchronous promise