Почему ошибки в функции any нельзя добавлять через push, а нужно записывать по индексу?

Если речь об аналоге Promise.any, AggregateError.errors должен сохранять порядок входных промисов, а не порядок их отказов; поэтому нужен индекс.

Короткий ответ

Что ответить на собеседовании

Если речь об аналоге Promise.any, AggregateError.errors должен сохранять порядок входных промисов, а не порядок их отказов; поэтому нужен индекс.

Подробный разбор

Ответ с пояснениями

Если речь об аналоге Promise.any, AggregateError.errors должен сохранять порядок входных промисов, а не порядок их отказов; поэтому нужен индекс.

Асинхронные операции завершаются в произвольном порядке. errors.push(error) отражает порядок завершения и нарушает ожидаемое соответствие исходным элементам. Сохраните индекс при обходе и записывайте errors[index] = error, отдельно считая отказы. Если все входы отклонены, сформируйте AggregateError из этого массива; пустой вход также должен завершаться отклонением.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее