В собственном EventEmitter изолируйте каждый обработчик отдельным try/catch; для возвращённых Promise отдельно обработайте отказ.
Как обработать ситуацию, когда один из callback-обработчиков в EventEmitter выбрасывает ошибку, чтобы остальные обработчики продолжили выполняться, а ошибка была, например, залогирована?
В собственном EventEmitter изолируйте каждый обработчик отдельным try/catch; для возвращённых Promise отдельно обработайте отказ.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В собственном EventEmitter изолируйте каждый обработчик отдельным try/catch; для возвращённых Promise отдельно обработайте отказ.
Обходите снимок слушателей, чтобы изменение подписок не ломало текущую доставку. После ошибки вызовите безопасный логгер и продолжайте цикл. Один внешний try/catch вокруг всего emit остановит обход на первом исключении. Если обработчики асинхронные, заранее определите порядок: ожидание каждого либо независимый запуск с обработкой ошибок.