多个等待循环如何修复



我有一个for循环,有多个等待,不知道如何Promise.all每个等待,这样我就可以删除;循环内的意外CCD_ 1";esLint错误。我看过Promise.all的修复示例,但它只适用于1个等待。我的循环有3个等待。这是我的代码:

for (let i = 0; i < a.length; i++) {
let b = await http.get(...)
let c = await http.get(...)
await doSomethingElse(i, b, c);
}

如何删除所有等待?如果不这样做,我的整个功能将失败

您可以Promise.all:

  • 循环的每次迭代
  • bc的请求,因为两者都不依赖于另一个
Promise.all(
a.map(
(_, i) => Promise.all([
http.get(...), // gets b
http.get(...), // gets c
])
.then(([b, c]) => doSomethingElse(i, b, c))
)
)
.then(() => {
// everything is finished
});

最新更新