当你调用一个返回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对象的并行和串行。