Promise.all()与Promise.allSettled()

Promise.all()与Promise.allSettled()

这两个Promise的核心区别在于
如果任何 Promise 拒绝,Promise.all() 会立即拒绝,而 Promise.allSettled() 会等待所有 Promise 解决(解决或拒绝),然后返回结果。

Initialize

const promise1 = Promise.resolve('Promise 1 成功');
const promise2 = Promise.reject('Promise 2 失败');

Using Promise.all()

Promise.all([promise1, promise2])
 .then((values) => {
	console.log(values);
})
 .catch((error) => {
 	console.log('An error occurred in Promise.all():', error);
});

// Output:
// An error occurred in Promise.all(): Promise 2 失败

在上面的代码中,当任何一个 Promise2 拒绝时,Promise.all() 会立即拒绝。

Using Promise.allSettled()

Promise.allSettled([promise1, promise2]).then((results) => {
  results.forEach((result, index) => {
    if (result.status === 'fulfilled') {
      console.log(
        `Promise ${index + 1} was fulfilled with value:`,
        result.value
      );
    } else {
      console.log(
        `Promise ${index + 1} was rejected with reason:`,
        result.reason
      );
    }
  });
});

// Output:
// Promise 1 was fulfilled with value: Promise 1 成功
// Promise 2 was rejected with reason: Promise 2 失败

在上面的代码中,Promise.allSettled() 等待所有 Promise 解决(解决或拒绝),然后返回结果。

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值