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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。