当遇到多个可以同时执行的异步任务时,就需要使用 Promise.all
。
Promise.all
方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。
1 | 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
结合使用:
1 | const p1 = async () => {} |