promise.allsettled使用
时间: 2023-11-02 09:55:18 浏览: 82
Promise.allSettled()方法接受一个数组作为参数,数组的每个成员都是一个 Promise 对象,并返回一个新的 Promise 对象。只有等到参数数组的所有 Promise 对象都发生状态变更(不管是fulfilled还是rejected),返回的 Promise 对象才会发生状态变更。<em>1</em><em>2</em><em>3</em>
#### 引用[.reference_title]
- *1* *2* *3* [Promise.allSettled()方法介绍](https://blog.csdn.net/qq_52855464/article/details/125407602)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item]
[ .reference_list ]
相关问题
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 状态结果的数组。
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"}]
```
阅读全文