在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对象的状态将被忽略。