Что должна вернуть sumPromises без аргументов?

Вызов без аргументов вернёт Promise, выполняющийся значением 0: пустой список успешно собирается, а reduce имеет начальное значение. При отказе входа функция отклонится.

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

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

Вызов без аргументов вернёт Promise, выполняющийся значением 0: пустой список успешно собирается, а reduce имеет начальное значение. При отказе входа функция отклонится.

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

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

Условие

Функция async function sumPromises(...items){ const values=await Promise.all(items); return values.reduce((sum,x)=>sum+x,0); } принимает Promise. Что вернёт вызов без аргументов и как поведёт себя при одном отклонённом Promise?

Ответ

Вызов без аргументов вернёт Promise, выполняющийся значением 0: пустой список успешно собирается, а reduce имеет начальное значение. При отказе входа функция отклонится.

Если убрать начальное значение 0, reduce на пустом массиве бросит TypeError. Начальный ноль задаёт естественное нейтральное значение суммы и делает контракт последовательным. Promise.all не отменяет остальные операции при первом отказе; если требуется отмена реальной работы, она должна поддерживаться загрузчиками отдельно. Само имя sumPromises не определяет эти правила — здесь они следуют из кода.

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

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

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

Подробнее