JSFiddle - React, Tailwind, and code Playground

JavaScript

const promiseRace = promises => new Promise((resolved, rejected) => {
  promises.forEach(element => {
    element.then(result => resolved(result), error => rejected(error));
  });
});

promiseRace([
  new Promise((resolve, reject) => setTimeout(() => resolve(1), 1000)),
  new Promise((resolve, reject) => setTimeout(() => reject(new Error("Ошибка!")), 2000)),
  new Promise((resolve, reject) => setTimeout(() => resolve(3), 3000))
]).then(alert);