Вызов без аргументов вернёт Promise, выполняющийся значением 0: пустой список успешно собирается, а reduce имеет начальное значение. При отказе входа функция отклонится.
Что должна вернуть sumPromises без аргументов?
Вызов без аргументов вернёт 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 не определяет эти правила — здесь они следуют из кода.