在JavaScript中,Promise.race方法用于返回一個Promise對象,該對象在給定的Promise對象中的任何一個解決或拒絕時解決或拒絕,以第一個解決或拒絕的結果為準。
使用Promise.race方法的語法如下:
Promise.race(iterable);
其中,iterable
是一個可迭代對象,例如數組。
以下是一個使用Promise.race方法的例子:
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 1 resolved');
}, 2000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
reject('Promise 2 rejected');
}, 1000);
});
Promise.race([promise1, promise2])
.then(result => {
console.log(result); // 輸出:Promise 2 rejected
})
.catch(error => {
console.log(error); // 輸出:Promise 2 rejected
});
在上面的例子中,我們創建了兩個Promise對象,promise1
和promise2
。其中,promise1
在2秒后解決,而promise2
在1秒后拒絕。我們使用Promise.race方法將這兩個Promise對象傳遞給它,并使用.then()方法來處理第一個解決的Promise對象。由于promise2
先拒絕,所以最終的結果是Promise 2 rejected
。
需要注意的是,Promise.race方法只返回一個Promise對象,并且只解決或拒絕第一個解決或拒絕的結果。其余的Promise對象的狀態將被忽略。