You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// Adds a listener to the end of the listeners array for the specified event.
// By default, event listeners are invoked in the order they are added. The emitter.prependListener() method can be used as an alternative to add the event listener to the beginning of the listeners array.
const EventEmitter = require('events')
const myEvent = new EventEmitter();
myEvent.on('test', () => console.log('Test from on'));
myEvent.prependListener('test', () => console.log('Test from prependListener'));
myEvent.emit('test');
// Prints:
// Test from on
// Test from prependListener
[x] once(event, listener)
// Adds a one time listener for the event. This listener is invoked only the next time the event is fired, after which it is removed.
// Adds a one-time listener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.
const EventEmitter = require('events')
const myEvent = new EventEmitter();
myEvent.once('test', () => console.log('Test from once'));
myEvent.emit('test');
// Prints:
// Test from once
[x] emit(event, [arg1], [arg2], [...])
// Execute each of the listeners in order with the supplied arguments. Returns true if event had listeners, false otherwise.
// Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.
const EventEmitter = require('events')
const myEvent = new EventEmitter();
// First listener
myEvent.on('test', () => {
console.log('First test listener');
});
// Second listener
myEvent.on('test', (arg1, arg2) => {
console.log(`Second test listener with parameters ${arg1}, ${arg2}`);
});
// Third listener
myEvent.on('test', (...args) => {
const parameters = args.join(', ');
console.log(`Third test listener with parameters ${parameters}`);
});
myEvent.emit('test', 1,2,3);
// Prints :
// First test listener
// Second test listener with parameters 1, 2
// Third test listener with parameters 1, 2, 3
[x] removeListener(event, listener)
// Remove a listener from the listener array for the specified event.
const EventEmitter = require('events');
const myEvent = new EventEmitter();
const callbackA = () => {
console.log('A');
myEvent.removeListener('event', callbackB);
};
const callbackB = () => {
console.log('B');
};
myEvent.on('event', callbackA);
myEvent.on('event', callbackB);
// callbackA removes listener callbackB but it will still be called.
// Internal listener array at time of emit [callbackA, callbackB]
myEvent.emit('event');
// Prints:
// A
// B
// callbackB is now removed.
// Internal listener array [callbackA]
myEvent.emit('event');
// Prints:
// A
[x] setMaxListeners(n)
// By default EventEmitters will print a warning if more than 10 listeners are added for a particular event.
// This is a useful default that helps finding memory leaks.
const EventEmitter = require('events')
const myEvent = new EventEmitter();
myEvent.on('test', () => console.log('Test from on'));
myEvent.once('test', () => {
// do stuff
console.log('getMaxListeners Before', myEvent.getMaxListeners());
myEvent.setMaxListeners(Math.max(myEvent.getMaxListeners() - 1, 0));
console.log('getMaxListeners After', myEvent.getMaxListeners());
});
myEvent.emit('test');
// Prints :
// Test from on
// getMaxListeners Before 10
// getMaxListeners After 9
[x] listeners(event)
// Returns an array of listeners for the specified event.
// Returns a copy of the array of listeners for the event named eventName.
const EventEmitter = require('events')
const myEvent = new EventEmitter();
myEvent.on('test', function testListeners() { console.log('Test the myEvent.listeners'); });
myEvent.emit('test');
const eventListeners = myEvent.listeners('test');
console.log('listeners', eventListeners);
// Prints :
// Test the myEvent.listeners
// listeners [ [Function: testListeners] ]