Promise.race()Promise.race() принимает итерируемый объект с промисами и завершается как только первый промис разрешится или отклонится. Результат принимает значение или причину отклонения первого завершённого промиса — все остальные игнорируются.
Promise.race([promise1, promise2, promise3])
.then(result => console.log('First to settle:', result))
.catch(err => console.error('First to fail:', err));
Частый паттерн в реальном коде — это установка таймаута на асинхронную операцию, например на сетевой запрос:
const fetchData = fetch('/api/data');
const timeout = new Promise((_, reject) =>
setTimeout(() => reject(new Error('Request timed out')), 5000)
);
Promise.race([fetchData, timeout])
.then(response => console.log('Data received:', response))
.catch(err => console.error(err.message));
fetchData разрешится в течение 5 секунд, используется его результатPromise.all(), который ждёт, пока все промисы разрешатсяPromise.race() отменит все оставшиеся promise в итерируемом объекте, как только первый promise завершится.
Новый — ещё не проверен сообществом
Вы