【问题标题】:js await loop with promises to finishjs等待循环,承诺完成
【发布时间】:2021-01-23 13:13:01
【问题描述】:
let array = []
for (let n = 0; n < 1000; n++){
   array.push(somePromise)
}
console.log(array.length)

如何修改代码,以便在我有console.log的行中只有在填充数组后才会执行。填充可能是异步的,但我也对同步版本感兴趣。

【问题讨论】:

  • array.push(somePromise) somePromise 已解决或待处理的承诺。
  • console.log 仅在填充数组时调用。不过,承诺的可能还没有解决。
  • 请说明somePromise 是否是异步函数?

标签: javascript loops async-await


【解决方案1】:

实际上,填充是同步的。你的意思是Promise.all()?使用Promise.all,你可以在所有promise完成后处理一些。

let array = []
for (let n = 0; n < 1000; n++){
   array.push(somePromise)
}
Promise.all(array)
.then((res) => {
   // You can handle some here
   console.log(res);
})

【讨论】:

  • 在 promise 被解决之前或之后数组长度将是相同的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-25
  • 2016-09-09
  • 2017-06-17
  • 2018-03-05
  • 2016-10-16
相关资源
最近更新 更多