Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник JavaScript

Promise.race

Возвращает результат первого завершившегося промиса — успешного или нет.

Доступно с: ES2015

Синтаксис

Promise.race(promises)

Параметры

ПараметрТипОписание
promisesIterableМассив промисов.

Возвращаемое значение

PromiseПромис с результатом или ошибкой того, кто завершился первым.

Примеры

Ограничение времени ожидания:

const slow = new Promise((resolve) => setTimeout(() => resolve('data'), 500));
const timeout = new Promise((_, reject) => setTimeout(() => reject(new Error('Timeout')), 100));
 
try {
  console.log(await Promise.race([slow, timeout]));
} catch (error) {
  console.log(error.message);
}

Результат:

Timeout

Примечания

Проигравшие промисы не отменяются — они продолжают работу, просто их результат никому не нужен. Для отмены запросов используйте AbortController.

См. также

  • Promise.any — Возвращает первый успешный результат, ошибки пропускает.
  • Promise.all — Ждёт выполнения всех промисов параллельно.
  • setTimeout — Выполняет функцию один раз через заданное время.

Вопросы и ответы по теме

В учебнике

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.