Exercise 7: Promise.race Implementation

Problem Statement

Create a function `race(promises)` that returns result of first promise to resolve/reject. Example: race([slowPromise, fastPromise]) => fastPromise result

Sample Output:

await race([slowPromise, fastPromise]) => (fastPromise result)
// Returns result of first resolved/rejected promise

Solution

const race = (promises) => {
  return new Promise((resolve, reject) => {
    promises.forEach(p => Promise.resolve(p).then(resolve, reject));
  });
};

Explanation

Overall Goal:

  • Pehle complete hone wale promise ka result return karna.

Real world:

  • Timeout: fastest response.
  • Competition: first to complete.