Skip to content

The Node events module

New Course Coming Soon:

Get Really Good at Git

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:

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)
Are you intimidated by Git? Can’t figure out merge vs rebase? Are you afraid of screwing up something any time you have to do something in Git? Do you rely on ChatGPT or random people’s answer on StackOverflow to fix your problems? Your coworkers are tired of explaining Git to you all the time? Git is something we all need to use, but few of us really master it. I created this course to improve your Git (and GitHub) knowledge at a radical level. A course that helps you feel less frustrated with Git. Launching Summer 2024. Join the waiting list!
→ Get my Node.js Handbook
→ Read my Node.js Tutorial on The Valley of Code

Here is how can I help you: