I came across an implementation of the Promise.race() method in JavaScript, which works as expected, but doesn’t make much sense to me.
const race = (...promises) =>
new Promise((res, rej) => {
promises.forEach(p => p.then(res).catch(rej));
});
How does the forEach loop end up assigning a specific promise‘s functions?
Advertisement
Answer
By definition a promise resolves / rejects only once, no matter how often you call resolve or reject. Therefore the promise you construct will resolve to whatever the first promise of the promises passed resolves.