4 min read
•Question 29 of 62mediumWhat is EventEmitter in Node.js?
Understanding the EventEmitter class and event-driven programming.
What You'll Learn
- What EventEmitter is
- How to use it
- Common patterns
What is EventEmitter?
EventEmitter is a class that allows objects to emit and listen for events. It's the foundation of Node.js event-driven architecture.
Basic Usage
code.jsJavaScript
const EventEmitter = require('events');
const emitter = new EventEmitter();
// Listen for event
emitter.on('greet', (name) => {
console.log(`Hello, ${name}!`);
});
// Emit event
emitter.emit('greet', 'World');
// Output: Hello, World!Common Methods
code.jsJavaScript
const emitter = new EventEmitter();
// on - add listener
emitter.on('event', callback);
// once - listener fires only once
emitter.once('event', callback);
// emit - trigger event
emitter.emit('event', arg1, arg2);
// off/removeListener - remove listener
emitter.off('event', callback);
// removeAllListeners
emitter.removeAllListeners('event');
// listenerCount
emitter.listenerCount('event');Custom EventEmitter Class
code.jsJavaScript
class MyServer extends EventEmitter {
constructor() {
super();
}
start() {
this.emit('started', { port: 3000 });
}
}
const server = new MyServer();
server.on('started', (info) => {
console.log(`Server on port ${info.port}`);
});
server.start();