Разница между EventEmitter и NodeEventTarget
Опубликовано: 26 Декабря, 2021
EventEmitter: все EventEmitter испускают событие newListener при добавлении новых слушателей и removeListener при удалении существующих слушателей. Он определяется и отображается модулем событий:
Чтобы импортировать EventEmitter , используйте следующий оператор импорта:
const EventEmitter = require ('события');
NodeEventTarget: объекты EventTarget и Event представляют собой специфичную для Node.js реализацию веб-API EventTarget , предоставляемую некоторыми базовыми API-интерфейсами Node.js.
Разница между EventEmitter и NodeEventTarget:
Эмиттер событий | Цель события узла |
---|---|
Он унаследован от модуля событий JavaScript. | Это модифицированное подмножество EventEmitter API, унаследованное от него. |
Он реализует is- связь с модулем событий. | Он реализует связь is-a с API EventTarget. |
В eventEmitter для одного и того же события мы можем разрешить регистрацию нескольких слушателей. | Любой слушатель может быть зарегистрирован один раз для каждого типа события, и он игнорируется, если пытается зарегистрировать слушателя несколько раз. |
Он максимально эмулирует такие события, как «ошибка», «классы», выбросы и т. Д. | Он не эмулирует полный API , EventEmitter как prependListener (), prependOnceListener (), rawListeners () и т.д. |
По умолчанию он регистрирует информацию и завершает текущее выполнение. | Для событий типа «ошибка » он не реализует поведение по умолчанию. |
Если в экземпляре EventEmitter возникает ошибка, то обычно возникает событие «ошибка». | Он поддерживает объекты и функции EventListener как обработчики для всех типов событий. |
Все EventEmitter испускают событие «NewListener», когда будут добавлены новые слушатели и «удаления слушателя » , когда слушатели будут удалены. | Это не экземпляр EventEmitter, и в большинстве случаев его нельзя использовать вместо EventEmitter. |
Синтаксис: emitter.once ( eventName, слушатель) | Синтаксис: nodeEventTarget.once ( тип, слушатель [, параметры]) |
Ссылка: https://nodejs.org/api/events.html#events_nodeeventtarget_vs_eventemitter