JavaScript Promise any() 方法是一个静态方法,它采用 Promise 数组作为参数并返回第一个已实现的 Promise。当数组中的所有 Promise 返回拒绝或者数组为空时,它会返回拒绝值。当所有承诺都被拒绝时,会返回 AggregateError,其中包含拒绝的原因。
用法:
Promise.any(iter)
Parameters: 它只需要一个参数。
- iter: 它是可迭代的承诺。
返回值:它返回一个承诺:
- rejected 如果传递的参数为空
- asynchronously fulfilled如果遇到第一个履行的承诺
- asynchronously rejected 如果所有的承诺都返回拒绝。在这种情况下,返回AggregateError。
示例 1:此示例展示了 Promise.any() 方法的基本用法。
Javascript
let prom1 = new Promise((resolve, reject) => {
reject("Failure");
})
let prom2 = new Promise((resolve, reject) => {
reject("Failed to load");
})
let prom3 = new Promise((resolve, reject) => {
resolve("Worked");
})
let prom4 = new Promise((resolve, reject) => {
resolve("Successful");
})
let prom = [prom1, prom2, prom3, prom4];
Promise.any(prom).then((val) => { console.log(val) });
输出:前两个承诺被拒绝,第一个成功的承诺是 prom3 返回,其值使用 then 捕获并打印在控制台上
Worked
示例 2:此示例显示了如何在任何方法中拒绝 Promise。
Javascript
let prom1 = new Promise((resolve, reject) => {
reject("Failure");
})
let prom2 = new Promise((resolve, reject) => {
reject("Failed to load");
})
let prom3 = new Promise((resolve, reject) => {
reject("Unsuccessful");
})
let prom4 = new Promise((resolve, reject) => {
reject("Rejected");
})
let prom = [prom1, prom2, prom3, prom4];
Promise.any([])
.then((val) => console.log(val))
.catch(err => console.log(err));
Promise.any(prom)
.then((val) => console.log(val))
.catch(err => console.log(err));
输出:当我们在任何方法中传递一个空数组时,它会被自动拒绝并返回AggregateError,而且如果数组中传递的所有承诺都返回被拒绝的相同输出,则会显示相同的输出。
AggregateError: All promises were rejected AggregateError: All promises were rejected
支持的浏览器:
- 谷歌浏览器
- 火狐浏览器
- Opera
- 苹果浏览器
- 边
我们有 Javascript Promise 方法的完整列表,要检查这些方法,请阅读 Javascript Promise 参考文章。
相关用法
- JavaScript Promise finally()用法及代码示例
- JavaScript Promise then()用法及代码示例
- JavaScript Promise catch()用法及代码示例
- JavaScript Promise.race()用法及代码示例
- JavaScript Proxy revocable()用法及代码示例
- JavaScript Proxy()用法及代码示例
- JavaScript Math cosh()用法及代码示例
- JavaScript Math sinh()用法及代码示例
- JavaScript Math sin()用法及代码示例
- JavaScript Math cos()用法及代码示例
- JavaScript Math tan()用法及代码示例
- JavaScript Math abs()用法及代码示例
- JavaScript Math pow()用法及代码示例
- JavaScript Math asin()用法及代码示例
- JavaScript Math acos()用法及代码示例
- JavaScript Math atan()用法及代码示例
- JavaScript Math ceil()用法及代码示例
- JavaScript Math floor()用法及代码示例
- JavaScript Math round()用法及代码示例
- JavaScript Math trunc()用法及代码示例
- JavaScript Math max()用法及代码示例
- JavaScript Math min()用法及代码示例
- JavaScript Math sqrt()用法及代码示例
- JavaScript Math sign()用法及代码示例
- JavaScript Math log()用法及代码示例
注:本文由纯净天空筛选整理自shobhit_sharma大神的英文原创作品 JavaScript Promise any() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。