并行执行promise

当你调用一个返回promise对象的异步函数时,其背后的操作是异步处理的。因此,如果你一行接一行的调用异步函数,实际上是并行处理了这些异步任务:

function runAll() {
  const p1 = taskA()
  const p2 = taskB()
  const p3 = taskC()
}
runAll()

现在,如果你希望在所有的异步操作都完成以后做一些事情,那么你可以使用 Promise.all

code/promises/run-all.js

function runAll() {
  const p1 = taskA()
  const p2 = taskB()
  const p3 = taskC()
  return Promise.all([p1, p2, p3])
}

runAll()
  .then(d => console.log(d, 'all done'))
  .catch(e => console.log(e))

下一篇,我们将探讨如何组合promise对象的并行和串行。

用户头像
登录后发表评论