Event-driven programming is a paradigm where the control flow of your application is determined by events—such as user actions, messages, or sensor outputs—rather than a sequential set of instructions. In Node.js, the EventEmitter is a core component that makes this pattern easy to implement.
What is Event-Driven Programming?
In event-driven programming, the program listens for specific events and responds by executing callback functions or methods. This design is especially useful for handling asynchronous operations, such as I/O tasks, where you don't want to block execution waiting for a task to complete.
The EventEmitter in Node.js
The EventEmitter class (from Node.js's built-in events module) provides an easy-to-use interface for:
- Registering listeners: Attach functions to be called when an event occurs.
- Emitting events: Trigger events to notify all registered listeners.
- Removing listeners: Unsubscribe functions when they are no longer needed.
This approach decouples the event producers from the event consumers, leading to more modular and maintainable code.
Example Usage
Here's a basic example illustrating how to use EventEmitter:
const EventEmitter = require('events');
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();
// Register an event listener for the 'greet' event
myEmitter.on('greet', (name) => {
console.log(`Hello, ${name}!`);
});
// Emit the 'greet' event with an argument
myEmitter.emit('greet', 'Alice'); // Output: Hello, Alice!
In this example:
- We create a custom emitter by extending the
EventEmitterclass. - We register a listener for the event named
'greet'using the.on()method. - We trigger the event using
.emit(), which passes the argument'Alice'to the listener.

Join the discussion
Sign in with your account to post comments, reply to others, and participate in the conversation.
Login to Comment