使用异步/等待时的排队延迟

时间:2019-09-23 16:09:01

标签: async-await queue

在使用异步/等待时如何避免排队延迟?

for (var i = 0; i < 3; i++) {
   await SomeFunction(i)
}
// 1, 2, 3

这个问题让我发疯,尤其是在使用不同的API时,但我不想放弃使用超级方便的await并返回到此:

for (var i = 0; i < 3; i++) {
   SomeFunction(i)
   .then(i => {

   })
}
// 2, 1, 3

1 个答案:

答案 0 :(得分:0)

您可以将所有Promise放入一个数组中,然后使用await一次Promise.all一次:

var promises = [];
for (var i = 0; i < 3; i++) {
  promises.push(SomeFunction(i));
}
await Promise.all(promises);