Sobes.tech
Middle
31

function any(promises) { // dein Code hier }

Unternehmen wurden gefragt
Яндекс

Antwort von AI

sobes.tech KI

javascript function any(promises) { return new Promise((resolve, reject) => { const errors = []; let rejectedCount = 0; let resolved = false;

promises.forEach((p, index) => {
  Promise.resolve(p)
    .then(value => {
      if (!resolved) {
        resolved = true;
        resolve(value);
      }
    })
    .catch(error => {
      errors[index] = error;
      rejectedCount++;
      if (rejectedCount === promises.length) {
        reject(new AggregateError(errors, 'No Promise in any was resolved'));
      }
    });
});

}); }


Эта реализация создаёт новый промис, который резолвится при первом успешном выполнении любого из переданных промисов. Если все промисы отклоняются, возвращается AggregateError с массивом ошибок в порядке исходного массива.