Promise.allSettled 不走.then
时间: 2023-10-21 17:24:59 浏览: 88
`Promise.allSettled` 方法返回一个 Promise,该 Promise 在所有给定的 Promise 都已经完成(不管是成功还是失败)后才会被解析。与 `Promise.all` 不同的是,`Promise.allSettled` 不会在任何一个 Promise 失败时立即拒绝,而是会等待所有 Promise 都完成后才会解析。
由于 `Promise.allSettled` 返回的是一个 Promise,因此你可以使用 `.then` 方法来处理它的解析结果。例如:
```javascript
Promise.allSettled([promise1, promise2, promise3])
.then(results => {
// 处理解析结果
// results 是一个数组,包含了每个 Promise 的结果,每个结果都是一个对象
results.forEach(result => {
if (result.status === 'fulfilled') {
// 处理成功的结果
console.log(result.value);
} else if (result.status === 'rejected') {
// 处理失败的结果
console.log(result.reason);
}
});
})
.catch(error => {
// 处理错误
});
```
注意,这里的 `.then` 是用来处理 `Promise.allSettled` 的解析结果的,而不是用来处理传入 `Promise.allSettled` 的每个 Promise 的结果的。如果你想处理每个 Promise 的结果,可以在传入的 Promise 后面链式调用 `.then`。
希望我的回答能对你有所帮助!如果你还有其他问题,请随时提出。
阅读全文