promise.all

112 阅读1分钟

promise.all() 用于将多个promise实例 包装成一个新的promise实例

promise.all()接收一个数组作为参数

他可以解决多个异步同时拿到结果的问题

const promise1 = Promise.resolve(1);
const promise2 = 2;
const promise3 = new Promise((resolve, reject) => {
 resolve(3);
});

let p = Promise.all([promise1, promise2, promise3])
console.log(p);

p的值为等待状态的promise

image.png

只有当数组里的所有promise实例为FUlfilled状态 promise.all返回的实例才会变成FUlfilled状态

setTimeout(() => {
    console.log(p);
}, 100);

image.png

如果promise.all()里有一个reject 那么会立即返回错误 实例对象的结果为这个reject的内容

let p = Promise.all([promise1, promise2, promise3,1,err])

image.png