Модуль событий узла

Модуль событий Node.js предоставляет класс EventEmitter.

Вeventsmodule предоставляет нам класс EventEmitter, который является ключом к работе с событиями в Node.

Я опубликовал полную статью об этом, поэтому здесь я просто опишу API без дополнительных примеров того, как его использовать.

const EventEmitter = require('events')
const door = new EventEmitter()

Слушатель событий ест свой собственный корм для собак и использует эти события:

  • newListenerкогда добавлен слушатель
  • removeListenerкогда слушатель удаляется

Вот подробное описание наиболее полезных методов:

emitter.addListener()

Псевдоним дляemitter.on().

emitter.emit()

Излучает событие. Он синхронно вызывает все прослушиватели событий в том порядке, в котором они были зарегистрированы.

emitter.eventNames()

Вернуть массив строк, представляющих события, зарегистрированные в текущем EventListener:

door.eventNames()

emitter.getMaxListeners()

Получите максимальное количество слушателей, которое можно добавить к объекту EventListener, которое по умолчанию равно 10, но может быть увеличено или уменьшено с помощьюsetMaxListeners()

door.getMaxListeners()

emitter.listenerCount()

Получите количество слушателей события, переданного в качестве параметра:

door.listenerCount('open')

emitter.listeners()

Получает массив слушателей события, переданного в качестве параметра:

door.listeners('open')

emitter.off()

Псевдоним дляemitter.removeListener() added in Node 10

emitter.on()

Добавляет функцию обратного вызова, которая вызывается при возникновении события.

Использование:

door.on('open', () => {
  console.log('Door was opened')
})

emitter.once()

Добавляет функцию обратного вызова, которая вызывается, когда событие генерируется в первый раз после его регистрации. Этот обратный вызов будет вызываться только один раз и никогда больше.

const EventEmitter = require('events')
const ee = new EventEmitter()

ee.once(‘my-event’, () => { //call callback function once })

emitter.prependListener()

Когда вы добавляете слушателя, используяonили жеaddListener, он добавляется последним в очереди слушателей и вызывается последним. С помощьюprependListenerон добавляется и вызывается перед другими слушателями.

emitter.prependOnceListener()

Когда вы добавляете слушателя, используяonce, он добавляется последним в очереди слушателей и вызывается последним. С помощьюprependOnceListenerон добавляется и вызывается перед другими слушателями.

emitter.removeAllListeners()

Удаляет всех слушателей объекта-эмиттера событий, слушающих определенное событие:

door.removeAllListeners('open')

emitter.removeListener()

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

const doSomething = () => {}
door.on('open', doSomething)
door.removeListener('open', doSomething)

emitter.setMaxListeners()

Устанавливает максимальное количество слушателей, которое можно добавить к объекту EventListener, которое по умолчанию равно 10, но может быть увеличено или уменьшено.

door.setMaxListeners(50)

Скачать мою бесплатнуюСправочник по Node.js


Дополнительные руководства по узлам: