Promise.all使用
Promise.all()方法接受一个迭代对象(例如数组),迭代每一项值,如果是promise得到成功或失败的结果,如果有一个失败直接返回失败的promise的值,如果迭代值不是promise则内部会将其包装成promise。全部都是成功的promise则等待所有promise成功后返回一个promise。
例子
const p1 = Promise.resolve(1);
const p2 = Promise.resolve(2);
const p3 = new Promise((resolve, reject) => {
resolve(3);
});
const p4 = Promise.reject(4);
const promiseAll1 = [p1, p2, p3];
const promiseAll2 = [p1, p2, p3, p4];
Promise.all(promiseAll1).then((res) => {
console.log(res, "res"); // [1, 2, 3]
});
Promise.all(promiseAll2).catch((err) => {
//p4失败了直接返回失败的promise的值
console.log(err, "err"); // 4
});
集合!!!——深耕
手写Promise.all的实现可以看我另一篇文章:【前端】手写Promise.all实现-CSDN博客