promise.race()
时间: 2023-09-11 13:12:41 浏览: 44
`Promise.race()` 是一个 JavaScript Promise 方法,它接收一个包含多个 Promise 的可迭代对象(如数组)作为参数,并返回一个新的 Promise。这个新的 Promise 将会在第一个传入的 Promise 完成(即状态变为 resolved 或 rejected)时被解析,并采用该 Promise 的结果或拒因。
换句话说,`Promise.race()` 可以用来竞争多个 Promise 的结果,只要有一个 Promise 完成,它就会返回这个完成的 Promise 的结果。
以下是一个示例代码:
```javascript
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 1 resolved');
}, 2000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
reject(new Error('Promise 2 rejected'));
}, 1000);
});
Promise.race([promise1, promise2])
.then(result => {
console.log(result); // 'Promise 2 rejected'
})
.catch(error => {
console.error(error); // Error: Promise 2 rejected
});
```
在上面的示例中,`Promise.race()` 接收了包含两个 Promise 的数组,其中 `promise1` 在2秒后被解析,而 `promise2` 在1秒后被拒绝。由于 `promise2` 先完成,所以新的 Promise 即时返回,并采用了 `promise2` 的拒因。
希望能解答你的问题!如果还有其他疑问,请随时提问。