await 与 Promise.all 结合使用

Posted 小情绪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了await 与 Promise.all 结合使用相关的知识,希望对你有一定的参考价值。

当遇到多个可以同时执行的异步任务时,就需要使用 Promise.all。

Promise.all 方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。
const p = Promise.all([p1, p2, p3])
Promise.all 方法接受一个数组作为参数,p1、p2、p3 都是 Promise 实例,如果不是,就会先调用 Promise.resolve 方法,将参数转为 Promise 实例,再进一步处理。(Promise.all 方法的参数可以不是数组,但必须具有 Iterator 接口,且返回的每个成员都是 Promise 实例。)

而 async/await 本身就是 promise 的语法糖,因此可以与 Promise.all 结合使用:

const p1 = async () => {}
const p2 = async () => {}
const p3 = async () => {}

const [result1, result2, result3] = await Promise.all([p1, p2, p3])

console.log(result1)
console.log(result2)
console.log(result3)

以上是关于await 与 Promise.all 结合使用的主要内容,如果未能解决你的问题,请参考以下文章

promise/axios async/await使用方法汇总

Promise.all() 与等待

await Promise.all() 和多个 await 之间有啥区别?

循环 await Promise.all 内存泄漏

async/await实现Promise.all()

如何用 Promise.all 替换多个 async/await 调用?