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
:
- 循环的每次迭代
b
和 c
的请求,因为两者都不依赖于另一个
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
});
我有一个带有多个等待的 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
:
- 循环的每次迭代
b
和c
的请求,因为两者都不依赖于另一个
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
});