Middle
120
questionbank

Что вы знаете о классе EventEmitter в Node.js?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

EventEmitter - класс в Node.js, который лежит в основе многих встроенных модулей (например, http, fs), и используется для реализации событийной модели.

Основные возможности:

  • Подписка на события: Позволяет регистрировать функции (обработчики), которые будут выполняться при возникновении определенного события.
  • Эмиссия событий: Позволяет вызывать (эмитировать) события, запуская зарегистрированные обработчики.
  • Передача данных: При эмиссии события можно передавать любые данные обработчикам.

Основные методы:

  • emitter.on(eventName, listener): Добавляет обработчик listener для события eventName.
  • emitter.once(eventName, listener): Добавляет одноразовый обработчик listener для события eventName. Он будет вызван только один раз при первом срабатывании события.
  • emitter.emit(eventName[, ...args]): Вызывает всех обработчиков, зарегистрированных для события eventName, передавая им аргументы ...args.
  • emitter.removeListener(eventName, listener): Удаляет конкретный обработчик listener для события eventName.
  • emitter.removeAllListeners([eventName]): Удаляет все обработчики для события eventName. Если eventName не указан, удаляет всех обработчиков для всех событий.

Пример использования:

javascript

EventEmitter реализует паттерн "Наблюдатель". Это позволяет строить слабосвязанные системы, где компоненты взаимодействуют через события, не зная о внутренней реализации друг друга.