Back to questions
Middle+
6
В чём разница между Promise.race и Promise.any?
Companies where asked
Ifellow
Answer from AI
sobes.tech AI
Promise.race и Promise.any — это методы для работы с несколькими промисами, но они отличаются по логике:
-
Promise.race(promises)возвращает результат первого промиса, который завершится (успешно или с ошибкой). То есть, как только любой из промисов выполнится или отклонится,raceзавершится с этим результатом. -
Promise.any(promises)возвращает результат первого успешно выполненного промиса. Если все промисы отклоняются, тогдаanyотклоняется с AggregateError.
Пример:
const p1 = new Promise((_, reject) => setTimeout(() => reject('Ошибка'), 100));
const p2 = new Promise(resolve => setTimeout(() => resolve('Успех'), 200));
Promise.race([p1, p2])
.then(console.log) // Выведет 'Ошибка' (первый завершившийся промис)
.catch(console.error);
Promise.any([p1, p2])
.then(console.log) // Выведет 'Успех' (первый успешно завершившийся промис)
.catch(console.error);