Introduction
The EventEmitter class helps your program talk to itself by sending and listening for messages called events.
Jump into concepts and practice - no test required
The EventEmitter class helps your program talk to itself by sending and listening for messages called events.
const EventEmitter = require('events'); const emitter = new EventEmitter(); emitter.on('eventName', (args) => { // code to run when eventName happens }); emitter.emit('eventName', args);
on listens for an event.
emit triggers the event and runs all listeners.
const EventEmitter = require('events'); const emitter = new EventEmitter(); emitter.on('greet', () => { console.log('Hello!'); }); emitter.emit('greet');
const EventEmitter = require('events'); const emitter = new EventEmitter(); emitter.on('data', (message) => { console.log('Received:', message); }); emitter.emit('data', 'Node.js is fun!');
const EventEmitter = require('events'); const emitter = new EventEmitter(); emitter.on('error', (err) => { console.error('Error happened:', err.message); }); emitter.emit('error', new Error('Oops!'));
This program creates a Door class that can emit an 'open' event. When the door opens, it prints messages before and after the event.
const EventEmitter = require('events'); class Door extends EventEmitter { open() { console.log('Door is opening...'); this.emit('open'); } } const door = new Door(); door.on('open', () => { console.log('The door was opened!'); }); door.open();
You can add many listeners to the same event.
Listeners run in the order they were added.
If no listener is set for an 'error' event, Node.js will crash.
The EventEmitter class lets parts of your program send and listen for events.
Use on to listen and emit to send events.
This helps keep your code organized and responsive.
EventEmitter class in Node.js?data using an EventEmitter instance called emitter?on method is used to register a callback to listen for a named event.emit sends events, not listens. listen and addEvent are not valid EventEmitter methods.const EventEmitter = require('events');
const emitter = new EventEmitter();
emitter.on('greet', name => {
console.log(`Hello, ${name}!`);
});
emitter.emit('greet', 'Alice');emit('greet', 'Alice') runs, it calls the listener with 'Alice', printing "Hello, Alice!".const EventEmitter = require('events');
const emitter = new EventEmitter();
emitter.emit('start');
emitter.on('start', () => {
console.log('Started');
});ping is emitted and logs the count each time. Which code correctly implements this?