The events module

The events module of Node.js provides the EventEmitter class

The events module provides us the EventEmitter class, which is key to working with events in Node.

I published a full article on that, so here I will just describe the API without further examples on how to use it.

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

The event listener eats its own dog food and uses these events:

  • newListener when a listener is added
  • removeListener when a listener is removed

Here's a detailed description of the most useful methods:

emitter.addListener()

Alias for emitter.on().

emitter.emit()

Emits an event. It synchronously calls every event listener in the order they were registered.

emitter.eventNames()

Return an array of strings that represent the events registered on the current EventListener:

door.eventNames()

emitter.getMaxListeners()

Get the maximum amount of listeners one can add to an EventListener object, which defaults to 10 but can be increased or lowered by using setMaxListeners()

door.getMaxListeners()

emitter.listenerCount()

Get the count of listeners of the event passed as parameter:

door.listenerCount('open')

emitter.listeners()

Gets an array of listeners of the event passed as parameter:

door.listeners('open')

emitter.off()

Alias for emitter.removeListener() added in Node 10

emitter.on()

Adds a callback function that's called when an event is emitted.

Usage:

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

emitter.once()

Adds a callback function that's called when an event is emitted for the first time after registering this. This callback is only going to be called once, never again.

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

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

emitter.prependListener()

When you add a listener using on or addListener, it's added last in the queue of listeners, and called last. Using prependListener it's added, and called, before other listeners.

emitter.prependOnceListener()

When you add a listener using once, it's added last in the queue of listeners, and called last. Using prependOnceListener it's added, and called, before other listeners.

emitter.removeAllListeners()

Removes all listeners of an event emitter object listening to a specific event:

door.removeAllListeners('open')

emitter.removeListener()

Remove a specific listener. You can do this by saving the callback function to a variable, when added, so you can reference it later:

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

emitter.setMaxListeners()

Sets the maximum amount of listeners one can add to an EventListener object, which defaults to 10 but can be increased or lowered.

door.setMaxListeners(50)





Download this site as a PDF / ePub / Mobi ebook, and receive book updates when I publish a new release!