for循环中的多个等待如何解决?

Multiple awaits in for loop how to fix?

我有一个带有多个等待的 for 循环,但不知道如何 Promise.all 每个等待,以便我可以删除“循环内的意外 await”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
    });