promise.all方法使用 案例介绍

Promise.all()方法可以接收一个由Promise对象组成的数组,当这些Promise对象全部变为fulfilled状态时,它才会返回一个新的Promise对象。新的Promise对象的状态也是fulfilled,它的值是一个由每个Promise对象的值组成的数组,数组中的值的顺序与原数组保持一致。如果其中有一个Promise对象变为rejected状态,Promise.all()方法返回的Promise对象就会变为rejected状态,且它的值是第一个变为rejected状态的Promise对象的值。
以下是Promise.all()方法的使用方法和案例:
1. 创建一个由多个Promise对象组成的数组
const promises = [ Promise.resolve(1), Promise.resolve(2), Promise.resolve(3), ];
2. 调用Promise.all()方法
Promise.all(promises) .then((results) => { console.log(results); // [1, 2, 3] }) .catch((error) => { console.error(error); });
如果数组中的所有Promise对象都变为fulfilled状态,Promise.all()方法返回的Promise对象也会变为fulfilled状态,且它的值是一个由每个Promise对象的值组成的数组。在上面的案例中,数组中的每个Promise对象都返回了一个数字,因此Promise.all()方法返回的Promise对象的值也是一个由数字1、2和3组成的数组。
3. 处理Promise对象中的错误
const promises = [ Promise.resolve(1), Promise.reject(new Error('Promise failed')), Promise.resolve(3), ]; Promise.all(promises) .then((results) => { console.log(results); }) .catch((error) => { console.error(error); // Error: Promise failed });
如果数组中的其中一个Promise对象变为rejected状态,Promise.all()方法返回的Promise对象也会变为rejected状态,且它的值是第一个变为rejected状态的Promise对象的值。在上面的案例中,数组中的第二个Promise对象返回了一个错误,因此Promise.all()方法返回的Promise对象也变为rejected状态,并输出了一个错误信息。需要注意的是,Promise.all()方法只会输出第一个rejected状态的Promise对象的错误信息,而不是所有Promise对象的错误信息。
小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧