promise.race
时间: 2023-09-12 09:02:33 浏览: 40
`Promise.race()`是一个函数,用于同时观察多个Promise对象的完成情况,并返回最先完成的Promise对象的结果或拒绝原因。
如果传递给`Promise.race()`的所有Promise对象都已经被解决,那么返回的Promise对象也会被立即解决,其结果为最先解决的Promise对象的结果或拒绝原因。
如果传递给`Promise.race()`的Promise对象数组中有一个或多个Promise对象被拒绝,那么返回的Promise对象也会被拒绝,并返回第一个被拒绝的Promise对象的拒绝原因。
以下是一个使用`Promise.race()`的示例:
```javascript
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => resolve('promise1'), 1000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => resolve('promise2'), 2000);
});
const promise3 = new Promise((resolve, reject) => {
setTimeout(() => resolve('promise3'), 3000);
});
Promise.race([promise1, promise2, promise3])
.then(result => console.log(result)); // 输出 'promise1'
```
在上面的示例中,我们创建了三个Promise对象,它们的完成时间分别为1秒、2秒和3秒。我们将它们作为参数传递给`Promise.race()`函数。由于`promise1`是最先完成的Promise对象,因此`Promise.race()`返回的Promise对象也会在1秒后被解决,并输出'promise1'。