Ответ
Promise.race и Promise.any работают с массивом промисов, но ведут себя по-разному:
- Promise.race
Возвращает первый успешно выполненный или отклоненный промис.
Пример:
Promise.race([
Promise.reject('Error'),
Promise.resolve('Success')
]).catch(console.log); // 'Error'
- Promise.any (ES2021)
Возвращает первый успешно выполненный промис. Если все отклонены — возвращаетAggregateError.
Пример:
Promise.any([
Promise.reject('Error1'),
Promise.resolve('Success')
]).then(console.log); // 'Success'
Ключевое отличие: race реагирует на первый завершенный промис (успех/ошибка), а any — только на первый успешный. Если все промисы отклонены — race вернет первую ошибку, а any — AggregateError.