JavaScript | Promise.allSettled() 方法
Promise是一个 JavaScript 对象,它可以处于待处理、已完成或已拒绝三种状态。 JavaScript 中的Promise.allSettled()方法用于在所有输入都已完成或被拒绝时获得一个承诺。
它基本上返回一个承诺,当传递的所有其他承诺都被履行或拒绝时,它会得到解决,并在输出中显示对象数组,特别是单独显示每个承诺的状态和值。
句法:
Promise.allSettled(iterable);
参数:此方法接受单个参数可迭代,它接受一个承诺数组或包含一些对象的普通数组。
返回值:此方法返回以下值:
- 如果传递的参数为空,则返回一个已解析的 Promise。
- 对于所有其他情况,它返回一个待处理的 Promise,以及在其中单独传递的所有 Promise 的状态和值。
示例 1:
Javascript
Javascript
Javascript
let first_promise = Promise.resolve(200);
let second_promise = Promise.reject("Rejected Promise");
let third_promise = new Promise((resolve, reject) =>{
setTimeout(() => resolve(500), 100)
});
let result = Promise.allSettled([first_promise, second_promise, third_promise]);
result.then((value) => console.log(value));
// This code is contributed by Aman Singla....
输出:
"fulfilled"
50
"rejected"
undefined
示例 2:
Javascript
输出:
"Completed in 1000"
Array [Object { status: "fulfilled", value: "Completed in 1000" },
Object { status: "fulfilled", value: "Completed in 2000" }]
示例 3:在此示例中,我们显示了执行多个 Promise 并将它们传递给 Promise.allSettled() 方法时收到的确切输出。
Javascript
let first_promise = Promise.resolve(200);
let second_promise = Promise.reject("Rejected Promise");
let third_promise = new Promise((resolve, reject) =>{
setTimeout(() => resolve(500), 100)
});
let result = Promise.allSettled([first_promise, second_promise, third_promise]);
result.then((value) => console.log(value));
// This code is contributed by Aman Singla....
输出:
[
{ status: 'fulfilled', value: 200 },
{ status: 'rejected', reason: 'Rejected Promise' },
{ status: 'fulfilled', value: 500 }
]
支持的浏览器:
- 谷歌浏览器 6.0 及以上
- Internet Explorer 9.0 及更高版本
- Mozilla 4.0 及更高版本
- Opera 11.1 及更高版本
- Safari 5.0 及以上