Promise.race() is a very useful Promise method in JavaScript that allows us to execute multiple asynchronous operations simultaneously and returns the result or error reason of the first completed operation. Please manually implement the Promise.race() method.
// example
const promise1 = new Promise((resolve, reject) => {
setTimeout(resolve, 500, 'First promise');
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(resolve, 100, 'Second promise');
});
const promise3 = new Promise((resolve, reject) => {
setTimeout(reject, 200, 'Third promise rejected');
});
promiseRace([promise1, promise2, promise3])
.then(value => {
console.log('Promise resolved with:', value);
})
.catch(reason => {
console.log('Promise rejected with:', reason);
});
function p**romiseRace**(promiseArray){
return new Promise((resolve, reject) => {
if(promiseArray.length == 0){
return
}
promiseArray.forEach((promiseItem) => {
Promise.resolve(promiseItem).then(resolve, reject)
})
})
}