promise.allsettled
时间: 2023-05-01 16:01:40 浏览: 86
Promise.allSettled() 是 JavaScript 中的一个方法,它接收一个 promise 数组作为参数,并返回一个新的 promise,该 promise 在所有给定的 promise 都完成后被解析。不同于 Promise.all() 方法,Promise.allSettled() 会等待所有的 promise 都完成,无论是成功还是失败,而不是只等待成功的 promise。
相关问题
promise.allSettled
`Promise.allSettled()` 方法接收一个 Promise 对象数组作为参数,返回一个新的 Promise 对象。当所有的 Promise 对象都已经 fulfilled 或 rejected 时,该 Promise 对象才会 resolve。返回的 Promise 对象的结果是一个对象数组,每个对象表示对应的 Promise 对象的结果,包含以下两个属性:
- `status`:表示 Promise 对象的状态,可能的值为 `"fulfilled"` 或 `"rejected"`。
- `value` 或 `reason`:表示 Promise 对象 resolve 或 reject 的值。
以下是一个使用 `Promise.allSettled()` 方法的例子:
```javascript
const promises = [
Promise.resolve(1),
Promise.reject("error"),
Promise.resolve("done")
];
Promise.allSettled(promises)
.then(results => console.log(results));
// 输出:[{status: "fulfilled", value: 1}, {status: "rejected", reason: "error"}, {status: "fulfilled", value: "done"}]
```
Promise.allSettled
`Promise.allSettled` 是 ES2020 中新增的一个 Promise 方法,它可以接收一个 Promise 数组,返回一个新的 Promise 对象。
这个新的 Promise 对象会在所有的 Promise 都settled(即变成fulfilled或rejected状态)之后返回一个由所有 Promise 状态结果组成的数组,数组中的每个元素都是一个对象,包含了每个 Promise 的状态和结果(或错误原因)。
例如:
```javascript
const promises = [
Promise.resolve(1),
Promise.reject('error'),
Promise.resolve(3)
];
Promise.allSettled(promises)
.then(results => {
console.log(results);
});
```
输出结果:
```
[
{ status: 'fulfilled', value: 1 },
{ status: 'rejected', reason: 'error' },
{ status: 'fulfilled', value: 3 }
]
```
在上面的例子中,Promise.allSettled 方法接收一个 Promise 数组,其中包含了三个 Promise,两个是 fulfilled 状态,一个是 rejected 状态。在 Promise.allSettled 方法的回调函数中,我们可以得到一个包含了所有 Promise 状态结果的数组。
阅读全文