Выбор ответа Middle Ошибки и логирование спрашивают часто обновлено

Необработанный rejected промис в Node 22

Вопрос

В Node 22 асинхронная функция бросила ошибку, а её результат никто не ждёт и не обрабатывает. Нет и обработчика unhandledRejection. Что произойдёт?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Процесс завершится с кодом 1. С Node 15 режим по умолчанию --unhandled-rejections=throw: необработанное отклонение превращается в исключение и роняет процесс.

Варианты ответа

  1. Предупреждение в консоли, процесс продолжит работу
  2. Ошибка будет молча проигнорирована
  3. Промис будет повторно выполнен
  4. Процесс завершится с кодом 1правильный ответ

Разбор

С Node 15 режим по умолчанию --unhandled-rejections=throw: необработанное отклонение превращается в исключение и роняет процесс. Это сделали, чтобы ошибки не терялись.

  • Предупреждение без падения было поведением Node 14 и раньше.
  • Молча ошибки не игнорируются.
  • Промисы не перезапускаются.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.