Выбор ответа Middle Асинхронные паттерны обновлено

Событие error без слушателя

Вопрос

У объекта-EventEmitter нет ни одного слушателя error. Что произойдёт при emitter.emit("error", new Error("x"))?

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

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

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

Коротко

Правильный ответ: emit бросит ошибку; не поймана, процесс упадёт. Событие error особое: без слушателя emit бросает переданную ошибку.

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

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

Разбор

Событие error особое: без слушателя emit бросает переданную ошибку. Если её никто не поймал, это uncaught exception и падение процесса. Поэтому на потоки, сокеты и свои эмиттеры всегда вешают обработчик error.

  • Любое другое событие без слушателей действительно игнорируется, но не error.
  • Предупреждением это не ограничивается.
  • Промисов здесь нет.

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

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

Термины по теме