Promise.allSettled(
时间: 2024-09-14 09:01:20 浏览: 34
`Promise.allSettled()` 是 JavaScript 中的一个 Promise 实现方法,用于一次性处理多个 Promise,返回一个新的 Promise,这个新的 Promise 在所有原 Promise 完成(无论成功还是失败)后解析为一个数组,数组中的每个元素都是一个对象,表示原来的 Promise 的结果,包含 `status` 和 `reason` 或 `value` 字段。
```javascript
const promises = [promise1, promise2, promise3];
Promise.allSettled(promises)
.then(results => {
// results 是一个数组,每个元素是 { status: 'fulfilled' | 'rejected', reason: Error | undefined, value: any }
results.forEach(result => {
if (result.status === 'fulfilled') {
console.log(`Promise ${result.index} fulfilled with value`, result.value);
} else {
console.log(`Promise ${result.index} rejected with reason`, result.reason);
}
});
})
.catch(error => {
console.error('An error occurred while settling the promises:', error);
});
```
`Promise.allSettled()` 可以帮助你在处理多个异步任务时了解它们的具体状态,无论是否成功,都有机会获取错误信息或结果值。
阅读全文