JavaScript中的Promise可以处于待处理,已实现或已拒绝的三种状态。当解决了所有已实现或拒绝的输入时,使用Javascript中的Promise.allSettled()方法获得承诺。
用法:
Promise.allSettled(iterable);
参数:此方法接受一个可迭代的单个参数,该参数采用一个Promise数组或一个包含某些对象的普通数组。
返回值:此方法返回以下值:
- 如果传递的参数为空,则返回已解决的Promise。
- 对于所有其他情况,它将返回一个未决的Promise。
范例1:
Javascript
<script>
// Illustration of Promise.allSettled()
// Method in Javascript with Example
const p1 = Promise.resolve(50);
const p2 = new Promise((resolve, reject) =>
setTimeout(reject, 100, 'geek'));
const prm = [p1, p2];
Promise.allSettled(prm).
then((results) => results.forEach((result) =>
console.log(result.status,result.value)));
</script>
输出:
"fulfilled" 50 "rejected" undefined
范例2:
Javascript
<script>
// Simple promise that resolves
// After a given time
const tOut = (t) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(`Completed in ${t}`)
}, t)
})
}
// Resolving a normal promise
tOut(1000).then(result => console.log(result))
// Completed in 1000
// Promise.allSettled
Promise.allSettled([tOut(1000), tOut(2000)]).then(result =>
console.log(result))
</script>
输出:
"Completed in 1000" Array [Object { status:"fulfilled", value:"Completed in 1000" }, Object { status:"fulfilled", value:"Completed in 2000" }]
支持的浏览器:下面列出了JavaScript Promise.allSettled()方法支持的浏览器:
- 谷歌浏览器
- 微软边
- 火狐浏览器
- 苹果Safari
- Opera
相关用法
- Javascript dataView.getInt16()用法及代码示例
- Javascript RegExp toString()用法及代码示例
- JavaScript Math cosh()用法及代码示例
- JavaScript Date toLocaleTimeString()用法及代码示例
- JavaScript Math random()用法及代码示例
- JavaScript Math round()用法及代码示例
- Javascript toString()用法及代码示例
注:本文由纯净天空筛选整理自shivanisinghss2110大神的英文原创作品 JavaScript | Promise.allSettled() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。