Events let parts of your program talk to each other. You send out a signal (emit) and other parts can hear it (listen) and react.
0
0
Emitting and listening for events in Node.js
Introduction
You want to run some code when a file finishes loading.
You want to update the screen when new data arrives.
You want to log a message when a user logs in.
You want to handle errors in a central place.
You want to trigger multiple actions after a button click.
Syntax
Node.js
const EventEmitter = require('events'); class MyEmitter extends EventEmitter {} const myEmitter = new MyEmitter(); // Listen for an event myEmitter.on('eventName', (data) => { // code to run when event happens }); // Emit the event myEmitter.emit('eventName', eventData);
Use on to listen for events.
Use emit to send out events.
Examples
This example listens for a 'ping' event and prints a message when it happens.
Node.js
const EventEmitter = require('events'); class MyEmitter extends EventEmitter {} const myEmitter = new MyEmitter(); // Example 1: Simple event with no data myEmitter.on('ping', () => { console.log('Ping received'); }); myEmitter.emit('ping');
This example sends a name with the event and the listener uses it.
Node.js
const EventEmitter = require('events'); class MyEmitter extends EventEmitter {} const myEmitter = new MyEmitter(); // Example 2: Event with data myEmitter.on('greet', (name) => { console.log(`Hello, ${name}!`); }); myEmitter.emit('greet', 'Alice');
Shows that many listeners can respond to the same event.
Node.js
const EventEmitter = require('events'); class MyEmitter extends EventEmitter {} const myEmitter = new MyEmitter(); // Example 3: Multiple listeners for one event myEmitter.on('alert', () => { console.log('Alert listener 1'); }); myEmitter.on('alert', () => { console.log('Alert listener 2'); }); myEmitter.emit('alert');
If no one listens, emitting does nothing and causes no error.
Node.js
const EventEmitter = require('events'); class MyEmitter extends EventEmitter {} const myEmitter = new MyEmitter(); // Example 4: No listeners for event myEmitter.emit('noListener');
Sample Program
This program shows how to listen for an event and emit it with data. It prints messages before and after emitting to show the order.
Node.js
const EventEmitter = require('events'); class MyEmitter extends EventEmitter {} const myEmitter = new MyEmitter(); // Print before emitting console.log('Before emitting event'); // Listen for 'dataReceived' event myEmitter.on('dataReceived', (data) => { console.log(`Data received: ${data}`); }); // Emit the event with some data myEmitter.emit('dataReceived', 'Hello World'); // Print after emitting console.log('After emitting event');
OutputSuccess
Important Notes
Emitting an event runs all listeners in the order they were added.
Listeners run synchronously by default, so code after emit runs after listeners finish.
Common mistake: forgetting to add a listener before emitting the event.
Use events to decouple parts of your program so they don't need to know about each other directly.
Summary
Events let parts of your program communicate by sending and receiving signals.
Use on to listen and emit to send events.
Listeners run in order and receive any data sent with the event.