【ES6】Promise.allSettled的用法

Promise.allSettled() 是一个Promise方法,用于处理一个Promise数组,返回一个新的Promise数组,每个元素对应原始Promise的状态。这个方法可以用于处理多个异步操作,并且能够获取每个操作的结果和状态。

下面是Promise.allSettled()的详细代码示例:

    const promise1 = Promise.resolve(3);
    const promise2 = new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve(4);
        }, 1000);
    });
    const promise3 = new Promise((resolve, reject) => {
        setTimeout(() => {
            reject(new Error('Error!'));
        }, 2000);
    });

    Promise.allSettled([promise1, promise2, promise3]).then(results => {
        console.log(results);
        results.forEach(result => {
            console.log(result.status); // "fulfilled" 或 "rejected"
            if (result.status === 'fulfilled') {
                console.log(result.value); // 成功的结果值
            } else {
                console.log(result.reason); // 错误原因
            }
        });
    });

输出结果:
【ES6】Promise.allSettled的用法_第1张图片

在上面的代码中,我们创建了三个Promise对象:promise1、promise2和promise3。promise1已经解析,promise2将在1秒后解析,promise3将在2秒后被拒绝。

然后,我们使用Promise.allSettled()方法处理这三个Promise对象,返回一个新的Promise对象。这个新的Promise对象在所有原始Promise都完成后才解析,并将每个原始Promise的状态和结果存储在一个数组中。

最后,我们使用.then()方法处理新的Promise对象,并打印出每个原始Promise的状态和结果。如果Promise已实现(fulfilled),则打印出状态"fulfilled"和结果值;如果Promise被拒绝(rejected),则打印出状态"rejected"和错误原因。

你可能感兴趣的:(前端,javascript,es6)