What is EventEmitter in Node.js ?
Last Updated :
12 Jun, 2023
EventEmitter is a class in node.js that is responsible for handling the events created using the ‘events’ module in node.js. Events are created to make custom operations while a set of operations is performed. EventEmitter can return two properties namely newListener if we want to create a new event listener and removeListener when we want to remove existing event listeners. Both of these mentioned properties emit an event whenever called to perform the operation.
In order to perform operations on EventEmitter, we need to create a reference using the ‘events’ module and then we need to initialize an instance of the EventEmitter so that we can use it further.
Syntax:
// Creating a constant reference of EventEmitter
const EventEmittter = require('events');
// Initializing instance of EventEmitter
const emitter = new EventEmitter();
Creating a listening event using addListener: Before we emit an event we have to create a listener who will listen to the callbacks emitted, then the listener will proceed with the further actions that are required to comply with the event. We can create an event listener with the help of the addListener property of EventEmitter. The addListener appends the event to the end of the array so we can call it multiple times to call multiple instances of the event and is very useful as we don’t require to write an event multiple times.
Syntax:
emitter.addListener(eventName, listener);
Emitting event: As every event is a named event in node.js we can trigger an event by using the emit method and we can pass arbitrary arguments to listen in the event.
Syntax:
emitter.emit(eventName, arg1,arg2,...)
Example: Code for creating an EventEmitter and adding events using the addListener method.
Javascript
const EventEmitter = require( 'events' );
const emitter = new EventEmitter();
emitter.addListener( 'welcomeEvent' , (name) => {
console.log( "welcome " + name);
});
emitter.emit( 'welcomeEvent' , "Geek" );
|
Output:
welcome Geek
Removing an instance of an event: We can remove an event using two methods removeListener if we want to remove a specific listener from the event or remove all listeners if we want to remove an instance of all listeners from an event.
Syntax:
// For removing any single listener form the event
emitter.removeListener(eventName, listener)
// For removing all listeners of the event
emitter.removeAllListeners(eventName)
Example: Code for removing the event listener of an event.
Javascript
const EventEmitter = require( 'events' );
const emitter = new EventEmitter();
const person1 = (msg) => {
console.log( "Message from person1: " + msg);
};
const person2 = (msg) => {
console.log( "Message from person2: " + msg);
};
emitter.addListener( 'printEvent' , person1);
emitter.addListener( 'printEvent' , person2);
emitter.emit( 'printEvent' , "Event occurred" );
emitter.removeAllListeners( 'printEvent' );
emitter.emit( 'printEvent' , "Event occurred" );
|
Output:
Message from person1: Event occurred
Message from person2: Event occurred
As you can see in the above output event was triggered twice but the output came only once as we deleted the event listeners so no listeners were present while emitting the event a second time.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...