实现一个promise.race
时间: 2023-01-11 19:55:36 浏览: 111
手写promise,实现
Promise.race([promise1, promise2, ...])方法返回一个新的promise对象,它在给定的promise对象之中,最先完成的那个promise对象所对应的值,作为这个新的promise对象的值。
下面是一个简单的实现:
```
function PromiseRace(promises) {
return new Promise((resolve, reject) => {
promises.forEach(promise => {
promise.then(resolve).catch(reject);
});
});
}
```
使用方法:
```
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => resolve('promise 1'), 1000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => resolve('promise 2'), 500);
});
PromiseRace([promise1, promise2]).then(value => {
console.log(value); // "promise 2"
});
```
注意:这个实现只是一个简单的示例,并不具有完整的功能。正式的Promise.race方法在实现上会更加复杂。
阅读全文