当遇到多个能够同时执行的异步工作时,就须要应用 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)