This symbol shall be used to install a listener for only monitoring 'error'
-events. Listeners installed using this symbol are called before the regular
-'error' listeners are called.
-
Installing a listener using this symbol does not change the behavior once an
-'error' event is emitted, therefore the process will still crash if no
+
This symbol shall be used to install a listener for only monitoring 'error'events. Listeners installed using this symbol are called before the regular'error' listeners are called.
+
Installing a listener using this symbol does not change the behavior once an'error' event is emitted. Therefore, the process will still crash if no
regular 'error' listener is installed.
+
+
Since
v13.6.0, v12.17.0
+
Defined in node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/events.d.ts:319
Methods
@@ -146,9 +177,9 @@ regular 'error' listener is installed.
Defined in node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/events.d.ts:390
emit
@@ -157,7 +188,7 @@ regular 'error' listener is installed.
Synchronously calls each of the listeners registered for the event namedeventName, in the order they were registered, passing the supplied arguments
to each.
Returns true if the event had listeners, false otherwise.
// First listener myEmitter.on('event', functionfirstListener() { console.log('Helloooo! first listener'); }); // Second listener myEmitter.on('event', functionsecondListener(arg1, arg2) { console.log(`event with parameters ${arg1}, ${arg2} in second listener`); }); // Third listener myEmitter.on('event', functionthirdListener(...args) { constparameters = args.join(', '); console.log(`event with parameters ${parameters} in third listener`); });
console.log(myEmitter.listeners('event'));
myEmitter.emit('event', 1, 2, 3, 4, 5);
// Prints: // [ // [Function: firstListener], // [Function: secondListener], // [Function: thirdListener] // ] // Helloooo! first listener // event with parameters 1, 2 in second listener // event with parameters 1, 2, 3, 4, 5 in third listener
+
// First listener myEmitter.on('event', functionfirstListener() { console.log('Helloooo! first listener'); }); // Second listener myEmitter.on('event', functionsecondListener(arg1, arg2) { console.log(`event with parameters ${arg1}, ${arg2} in second listener`); }); // Third listener myEmitter.on('event', functionthirdListener(...args) { constparameters = args.join(', '); console.log(`event with parameters ${parameters} in third listener`); });
console.log(myEmitter.listeners('event'));
myEmitter.emit('event', 1, 2, 3, 4, 5);
// Prints: // [ // [Function: firstListener], // [Function: secondListener], // [Function: thirdListener] // ] // Helloooo! first listener // event with parameters 1, 2 in second listener // event with parameters 1, 2, 3, 4, 5 in third listener
Since
v0.1.26
@@ -170,9 +201,9 @@ to each.
Rest...args: any[]
Returns boolean
+
Defined in node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/events.d.ts:652
eventNames
@@ -180,15 +211,15 @@ to each.
Returns an array listing the events for which the emitter has registered
listeners. The values in the array are strings or Symbols.
Defined in node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/events.d.ts:715
getMaxListeners
@@ -200,15 +231,17 @@ set by emitter.setMaxListeners(n) or defaults to Returns number
+
Defined in node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/events.d.ts:567
listenerCount
-
listenerCount(eventName): number
+
listenerCount(eventName, listener?): number
-
Returns the number of listeners listening to the event named eventName.
+
Returns the number of listeners listening for the event named eventName.
+If listener is provided, it will return how many times the listener is found
+in the list of the listeners of the event.
Defined in node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/events.d.ts:540
on
@@ -288,7 +325,7 @@ times.
Returns a reference to the EventEmitter, so that calls can be chained.
By default, event listeners are invoked in the order they are added. Theemitter.prependListener() method can be used as an alternative to add the
event listener to the beginning of the listeners array.
-
constmyEE = newEventEmitter(); myEE.on('foo', () =>console.log('a')); myEE.prependListener('foo', () =>console.log('b')); myEE.emit('foo'); // Prints: // b // a
+
Defined in node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/events.d.ts:422
once
@@ -331,7 +368,7 @@ next time eventName is triggered, this listener is removed and then
Returns a reference to the EventEmitter, so that calls can be chained.
By default, event listeners are invoked in the order they are added. Theemitter.prependOnceListener() method can be used as an alternative to add the
event listener to the beginning of the listeners array.
-
constmyEE = newEventEmitter(); myEE.once('foo', () =>console.log('a')); myEE.prependOnceListener('foo', () =>console.log('b')); myEE.emit('foo'); // Prints: // b // a
+
// Returns a new Array with a function `onceWrapper` which has a property // `listener` which contains the original listener bound above constlisteners = emitter.rawListeners('log'); constlogFnWrapper = listeners[0];
// Logs "log once" to the console and does not unbind the `once` event logFnWrapper.listener();
// Logs "log once" to the console and removes the listener logFnWrapper();
emitter.on('log', () =>console.log('log persistently')); // Will return a new Array with a single function bound by `.on()` above constnewListeners = emitter.rawListeners('log');
// Returns a new Array with a function `onceWrapper` which has a property // `listener` which contains the original listener bound above constlisteners = emitter.rawListeners('log'); constlogFnWrapper = listeners[0];
// Logs "log once" to the console and does not unbind the `once` event logFnWrapper.listener();
// Logs "log once" to the console and removes the listener logFnWrapper();
emitter.on('log', () =>console.log('log persistently')); // Will return a new Array with a single function bound by `.on()` above constnewListeners = emitter.rawListeners('log');
removeListener() will remove, at most, one instance of a listener from the
listener array. If any single listener has been added multiple times to the
@@ -500,7 +537,7 @@ called multiple times to remove each instance.
Once an event is emitted, all listeners attached to it at the
time of emitting are called in order. This implies that anyremoveListener() or removeAllListeners() calls after emitting and before the last listener finishes execution
will not remove them fromemit() in progress. Subsequent events behave as expected.
// callbackA removes listener callbackB but it will still be called. // Internal listener array at time of emit [callbackA, callbackB] myEmitter.emit('event'); // Prints: // A // B
// callbackB is now removed. // Internal listener array [callbackA] myEmitter.emit('event'); // Prints: // A
+
// callbackA removes listener callbackB but it will still be called. // Internal listener array at time of emit [callbackA, callbackB] myEmitter.emit('event'); // Prints: // A // B
// callbackB is now removed. // Internal listener array [callbackA] myEmitter.emit('event'); // Prints: // A
Because listeners are managed using an internal array, calling this will
change the position indices of any listener registered after the listener
@@ -510,7 +547,7 @@ the emitter.listeners() method will need to be recreated.
When a single function has been added as a handler multiple times for a single
event (as in the example below), removeListener() will remove the most
recently added instance. In the example the once('ping')listener is removed:
// Emit later on process.nextTick(() => { ee.emit('foo', 'bar'); ee.emit('foo', 42); });
forawait (consteventofon(ee, 'foo')) { // The execution of this inner block is synchronous and it // processes one event at a time (even with await). Do not use // if concurrent execution is required. console.log(event); // prints ['bar'] [42] } // Unreachable here })();
+
import { on, EventEmitter } from'node:events'; importprocessfrom'node:process';
constee = newEventEmitter();
// Emit later on process.nextTick(() => { ee.emit('foo', 'bar'); ee.emit('foo', 42); });
forawait (consteventofon(ee, 'foo')) { // The execution of this inner block is synchronous and it // processes one event at a time (even with await). Do not use // if concurrent execution is required. console.log(event); // prints ['bar'] [42] } // Unreachable here
Returns an AsyncIterator that iterates eventName events. It will throw
if the EventEmitter emits 'error'. It removes all listeners when
exiting the loop. The value returned by each iteration is an array
composed of the emitted event arguments.
An AbortSignal can be used to cancel waiting on events:
-
const { on, EventEmitter } = require('events'); constac = newAbortController();
(async () => { constee = newEventEmitter();
// Emit later on process.nextTick(() => { ee.emit('foo', 'bar'); ee.emit('foo', 42); });
forawait (consteventofon(ee, 'foo', { signal:ac.signal })) { // The execution of this inner block is synchronous and it // processes one event at a time (even with await). Do not use // if concurrent execution is required. console.log(event); // prints ['bar'] [42] } // Unreachable here })();
process.nextTick(() =>ac.abort());
+
import { on, EventEmitter } from'node:events'; importprocessfrom'node:process';
constac = newAbortController();
(async () => { constee = newEventEmitter();
// Emit later on process.nextTick(() => { ee.emit('foo', 'bar'); ee.emit('foo', 42); });
forawait (consteventofon(ee, 'foo', { signal:ac.signal })) { // The execution of this inner block is synchronous and it // processes one event at a time (even with await). Do not use // if concurrent execution is required. console.log(event); // prints ['bar'] [42] } // Unreachable here })();
process.nextTick(() =>ac.abort());
Since
v13.6.0, v12.16.0
@@ -644,9 +681,9 @@ composed of the emitted event arguments.
Optionaloptions: StaticEventEmitterOptions
Returns AsyncIterableIterator<any>
that iterates eventName events emitted by the emitter
+
Defined in node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/events.d.ts:250
Staticonce
@@ -658,15 +695,15 @@ The Promise will resolve with an array of all the arguments emitted
given event.
This method is intentionally generic and works with the web platform EventTarget interface, which has no special'error' event
semantics and does not listen to the 'error' event.
The special handling of the 'error' event is only used when events.once()is used to wait for another event. If events.once() is used to wait for the
'error' event itself, then it is treated as any other kind of event without
special handling:
Sets or gets the default captureRejection value for all emitters.
+Value: boolean
+Change the default
+ +captureRejections
option on all newEventEmitter
objects.Since
v13.4.0, v12.16.0
Inherited from EventEmitter.captureRejections
+Inherited from EventEmitterAsyncResource.captureRejections
-- Defined in node_modules/.pnpm/@types+node@18.15.13/node_modules/@types/node/events.d.ts:333
Max Listeners
-Static
defaultInherited from EventEmitter.defaultMaxListeners
+By default, a maximum of
+10
listeners can be registered for any single +event. This limit can be changed for individualEventEmitter
instances +using theemitter.setMaxListeners(n)
method. To change the default +for allEventEmitter
instances, theevents.defaultMaxListeners
property can be used. If this value is not a positive number, aRangeError
is thrown.Take caution when setting the
+events.defaultMaxListeners
because the +change affects allEventEmitter
instances, including those created before +the change is made. However, callingemitter.setMaxListeners(n)
still has +precedence overevents.defaultMaxListeners
.This is not a hard limit. The
+ +EventEmitter
instance will allow +more listeners to be added but will output a trace warning to stderr indicating +that a "possible EventEmitter memory leak" has been detected. For any singleEventEmitter
, theemitter.getMaxListeners()
andemitter.setMaxListeners()
methods can be used to +temporarily avoid this warning:The
+--trace-warnings
command-line flag can be used to display the +stack trace for such warnings.The emitted warning can be inspected with
+ +process.on('warning')
and will +have the additionalemitter
,type
, andcount
properties, referring to +the event emitter instance, the event's name and the number of attached +listeners, respectively. +Itsname
property is set to'MaxListenersExceededWarning'
.Since
v0.11.2
+Inherited from EventEmitterAsyncResource.defaultMaxListeners
-- Defined in node_modules/.pnpm/@types+node@18.15.13/node_modules/@types/node/events.d.ts:334
Static
Readonly
errorThis symbol shall be used to install a listener for only monitoring
-'error'
-events. Listeners installed using this symbol are called before the regular -'error'
listeners are called.Installing a listener using this symbol does not change the behavior once an -
'error'
event is emitted, therefore the process will still crash if no +This symbol shall be used to install a listener for only monitoring
+'error'
events. Listeners installed using this symbol are called before the regular'error'
listeners are called.Installing a listener using this symbol does not change the behavior once an
+ +'error'
event is emitted. Therefore, the process will still crash if no regular'error'
listener is installed.Since
v13.6.0, v12.17.0
Inherited from EventEmitter.errorMonitor
+Inherited from EventEmitterAsyncResource.errorMonitor
-- Defined in node_modules/.pnpm/@types+node@18.15.13/node_modules/@types/node/events.d.ts:327
Methods
'error'
listener is installed.Rest
...args: any[]Returns void