@@ -158,11 +158,13 @@ myEmitter.emit('error', new Error('whoops!'));
158158``` 
159159
160160It is possible to monitor ` 'error' `  events without consuming the emitted error
161- by installing a listener using the symbol ` errorMonitor ` .
161+ by installing a listener using the symbol ` events. errorMonitor` .
162162
163163``` js 
164- const  myEmitter  =  new  MyEmitter ();
165- myEmitter .on (EventEmitter .errorMonitor , (err ) =>  {
164+ const  { EventEmitter , errorMonitor  } =  require (' events' 
165+ 
166+ const  myEmitter  =  new  EventEmitter ();
167+ myEmitter .on (errorMonitor, (err ) =>  {
166168  MyMonitoringTool .log (err);
167169});
168170myEmitter .emit (' error' new  Error (' whoops!' 
@@ -205,12 +207,13 @@ ee2.on('something', async (value) => {
205207ee2[Symbol .for (' nodejs.rejection' =  console .log ;
206208``` 
207209
208- Setting ` EventEmitter .captureRejections = true`  will change the default for all
210+ Setting ` events .captureRejections = true`  will change the default for all
209211new instances of ` EventEmitter ` .
210212
211213``` js 
212- EventEmitter .captureRejections  =  true ;
213- const  ee1  =  new  EventEmitter ();
214+ const  events  =  require (' events' 
215+ events .captureRejections  =  true ;
216+ const  ee1  =  new  events.EventEmitter ();
214217ee1 .on (' something' async  (value ) =>  {
215218  throw  new  Error (' kaboom' 
216219});
@@ -306,106 +309,6 @@ changes:
306309
307310The ` 'removeListener' `  event is emitted * after*  the ` listener `  is removed.
308311
309- ### ` EventEmitter.listenerCount(emitter, eventName) `  
310- <!--  YAML
311- added: v0.9.12 
312- deprecated: v3.2.0 
313- --> 
314- 
315- >  Stability: 0 - Deprecated: Use [ ` emitter.listenerCount() ` ] [ ]  instead.
316- 
317- *  ` emitter `  {EventEmitter} The emitter to query
318- *  ` eventName `  {string|symbol} The event name
319- 
320- A class method that returns the number of listeners for the given ` eventName ` 
321- registered on the given ` emitter ` .
322- 
323- ``` js 
324- const  myEmitter  =  new  EventEmitter ();
325- myEmitter .on (' event' =>  {});
326- myEmitter .on (' event' =>  {});
327- console .log (EventEmitter .listenerCount (myEmitter, ' event' 
328- //  Prints: 2
329- ``` 
330- 
331- ### ` EventEmitter.defaultMaxListeners `  
332- <!--  YAML
333- added: v0.11.2 
334- --> 
335- 
336- By default, a maximum of ` 10 `  listeners can be registered for any single
337- event. This limit can be changed for individual ` EventEmitter `  instances
338- using the [ ` emitter.setMaxListeners(n) ` ] [ ]  method. To change the default
339- for * all*  ` EventEmitter `  instances, the ` EventEmitter.defaultMaxListeners ` 
340- property can be used. If this value is not a positive number, a ` RangeError ` 
341- is thrown.
342- 
343- Take caution when setting the ` EventEmitter.defaultMaxListeners `  because the
344- change affects * all*  ` EventEmitter `  instances, including those created before
345- the change is made. However, calling [ ` emitter.setMaxListeners(n) ` ] [ ]  still has
346- precedence over ` EventEmitter.defaultMaxListeners ` .
347- 
348- This is not a hard limit. The ` EventEmitter `  instance will allow
349- more listeners to be added but will output a trace warning to stderr indicating
350- that a "possible EventEmitter memory leak" has been detected. For any single
351- ` EventEmitter ` , the ` emitter.getMaxListeners() `  and ` emitter.setMaxListeners() ` 
352- methods can be used to temporarily avoid this warning:
353- 
354- ``` js 
355- emitter .setMaxListeners (emitter .getMaxListeners () +  1 );
356- emitter .once (' event' =>  {
357-   //  do stuff
358-   emitter .setMaxListeners (Math .max (emitter .getMaxListeners () -  1 , 0 ));
359- });
360- ``` 
361- 
362- The [ ` --trace-warnings ` ] [ ]  command-line flag can be used to display the
363- stack trace for such warnings.
364- 
365- The emitted warning can be inspected with [ ` process.on('warning') ` ] [ ]  and will
366- have the additional ` emitter ` , ` type `  and ` count `  properties, referring to
367- the event emitter instance, the event’s name and the number of attached
368- listeners, respectively.
369- Its ` name `  property is set to ` 'MaxListenersExceededWarning' ` .
370- 
371- ### ` EventEmitter.errorMonitor `  
372- <!--  YAML
373- added: 
374-  - v13.6.0 
375-  - v12.16.0 
376- --> 
377- 
378- This symbol shall be used to install a listener for only monitoring ` 'error' ` 
379- events. Listeners installed using this symbol are called before the regular
380- ` 'error' `  listeners are called.
381- 
382- Installing a listener using this symbol does not change the behavior once an
383- ` 'error' `  event is emitted, therefore the process will still crash if no
384- regular ` 'error' `  listener is installed.
385- 
386- ### ` EventEmitter.setMaxListeners(n[, ...eventTargets]) `  
387- <!--  YAML
388- added: v14.17.0 
389- --> 
390- 
391- *  ` n `  {number} A non-negative number. The maximum number of listeners per
392-   ` EventTarget `  event.
393- *  ` ...eventsTargets `  {EventTarget[ ] |EventEmitter[ ] } Zero or more {EventTarget}
394-   or {EventEmitter} instances. If none are specified, ` n `  is set as the default
395-   max for all newly created {EventTarget} and {EventEmitter} objects.
396- 
397- ``` js 
398- const  {
399-   setMaxListeners ,
400-   EventEmitter 
401- } =  require (' events' 
402- 
403- const  target  =  new  EventTarget ();
404- const  emitter  =  new  EventEmitter ();
405- 
406- setMaxListeners (5 , target, emitter);
407- ``` 
408- 
409312### ` emitter.addListener(eventName, listener) `  
410313<!--  YAML
411314added: v0.1.26 
@@ -496,7 +399,7 @@ added: v1.0.0
496399
497400Returns the current max listener value for the ` EventEmitter `  which is either
498401set by [ ` emitter.setMaxListeners(n) ` ] [ ]  or defaults to
499- [ ` EventEmitter .defaultMaxListeners` ] [ ] .
402+ [ ` events .defaultMaxListeners` ] [ ] .
500403
501404### ` emitter.listenerCount(eventName) `  
502405<!--  YAML
@@ -852,6 +755,61 @@ class MyClass extends EventEmitter {
852755}
853756``` 
854757
758+ ## ` events.defaultMaxListeners `  
759+ <!--  YAML
760+ added: v0.11.2 
761+ --> 
762+ 
763+ By default, a maximum of ` 10 `  listeners can be registered for any single
764+ event. This limit can be changed for individual ` EventEmitter `  instances
765+ using the [ ` emitter.setMaxListeners(n) ` ] [ ]  method. To change the default
766+ for * all*  ` EventEmitter `  instances, the ` events.defaultMaxListeners ` 
767+ property can be used. If this value is not a positive number, a ` RangeError ` 
768+ is thrown.
769+ 
770+ Take caution when setting the ` events.defaultMaxListeners `  because the
771+ change affects * all*  ` EventEmitter `  instances, including those created before
772+ the change is made. However, calling [ ` emitter.setMaxListeners(n) ` ] [ ]  still has
773+ precedence over ` events.defaultMaxListeners ` .
774+ 
775+ This is not a hard limit. The ` EventEmitter `  instance will allow
776+ more listeners to be added but will output a trace warning to stderr indicating
777+ that a "possible EventEmitter memory leak" has been detected. For any single
778+ ` EventEmitter ` , the ` emitter.getMaxListeners() `  and ` emitter.setMaxListeners() ` 
779+ methods can be used to temporarily avoid this warning:
780+ 
781+ ``` js 
782+ emitter .setMaxListeners (emitter .getMaxListeners () +  1 );
783+ emitter .once (' event' =>  {
784+   //  do stuff
785+   emitter .setMaxListeners (Math .max (emitter .getMaxListeners () -  1 , 0 ));
786+ });
787+ ``` 
788+ 
789+ The [ ` --trace-warnings ` ] [ ]  command-line flag can be used to display the
790+ stack trace for such warnings.
791+ 
792+ The emitted warning can be inspected with [ ` process.on('warning') ` ] [ ]  and will
793+ have the additional ` emitter ` , ` type `  and ` count `  properties, referring to
794+ the event emitter instance, the event’s name and the number of attached
795+ listeners, respectively.
796+ Its ` name `  property is set to ` 'MaxListenersExceededWarning' ` .
797+ 
798+ ## ` events.errorMonitor `  
799+ <!--  YAML
800+ added: 
801+  - v13.6.0 
802+  - v12.17.0 
803+ --> 
804+ 
805+ This symbol shall be used to install a listener for only monitoring ` 'error' ` 
806+ events. Listeners installed using this symbol are called before the regular
807+ ` 'error' `  listeners are called.
808+ 
809+ Installing a listener using this symbol does not change the behavior once an
810+ ` 'error' `  event is emitted, therefore the process will still crash if no
811+ regular ` 'error' `  listener is installed.
812+ 
855813## ` events.getEventListeners(emitterOrTarget, eventName) `  
856814<!--  YAML
857815added: 
@@ -1065,6 +1023,29 @@ Value: `Symbol.for('nodejs.rejection')`
10651023
10661024See how to write a custom [ rejection handler] [ rejection ] .
10671025
1026+ ## ` events.listenerCount(emitter, eventName) `  
1027+ <!--  YAML
1028+ added: v0.9.12 
1029+ deprecated: v3.2.0 
1030+ --> 
1031+ 
1032+ >  Stability: 0 - Deprecated: Use [ ` emitter.listenerCount() ` ] [ ]  instead.
1033+ 
1034+ *  ` emitter `  {EventEmitter} The emitter to query
1035+ *  ` eventName `  {string|symbol} The event name
1036+ 
1037+ A class method that returns the number of listeners for the given ` eventName ` 
1038+ registered on the given ` emitter ` .
1039+ 
1040+ ``` js 
1041+ const  { EventEmitter , listenerCount  } =  require (' events' 
1042+ const  myEmitter  =  new  EventEmitter ();
1043+ myEmitter .on (' event' =>  {});
1044+ myEmitter .on (' event' =>  {});
1045+ console .log (listenerCount (myEmitter, ' event' 
1046+ //  Prints: 2
1047+ ``` 
1048+ 
10681049## ` events.on(emitter, eventName[, options]) `  
10691050<!--  YAML
10701051added: 
@@ -1132,6 +1113,30 @@ const ac = new AbortController();
11321113process .nextTick (() =>  ac .abort ());
11331114``` 
11341115
1116+ ## ` events.setMaxListeners(n[, ...eventTargets]) `  
1117+ <!--  YAML
1118+ added: v14.17.0 
1119+ --> 
1120+ 
1121+ *  ` n `  {number} A non-negative number. The maximum number of listeners per
1122+   ` EventTarget `  event.
1123+ *  ` ...eventsTargets `  {EventTarget[ ] |EventEmitter[ ] } Zero or more {EventTarget}
1124+   or {EventEmitter} instances. If none are specified, ` n `  is set as the default
1125+   max for all newly created {EventTarget} and {EventEmitter} objects.
1126+ 
1127+ ``` js 
1128+ const  {
1129+   setMaxListeners ,
1130+   EventEmitter 
1131+ } =  require (' events' 
1132+ 
1133+ const  target  =  new  EventTarget ();
1134+ const  emitter  =  new  EventEmitter ();
1135+ 
1136+ setMaxListeners (5 , target, emitter);
1137+ ``` 
1138+ 
1139+ <a  id =" event-target-and-event-api " ></a >
11351140## ` EventTarget `  and ` Event `  API 
11361141<!--  YAML
11371142added: v14.5.0 
@@ -1604,14 +1609,14 @@ to the `EventTarget`.
16041609
16051610[ WHATWG-EventTarget ] : https://dom.spec.whatwg.org/#interface-eventtarget 
16061611[ `--trace-warnings` ] : cli.md#cli_trace_warnings 
1607- [ `EventEmitter.defaultMaxListeners` ] : #events_eventemitter_defaultmaxlisteners 
16081612[ `EventTarget` Web API ] : https://dom.spec.whatwg.org/#eventtarget 
16091613[ `EventTarget` error handling ] : #events_eventtarget_error_handling 
16101614[ `Event` Web API ] : https://dom.spec.whatwg.org/#event 
16111615[ `domain` ] : domain.md 
16121616[ `emitter.listenerCount()` ] : #events_emitter_listenercount_eventname 
16131617[ `emitter.removeListener()` ] : #events_emitter_removelistener_eventname_listener 
16141618[ `emitter.setMaxListeners(n)` ] : #events_emitter_setmaxlisteners_n 
1619+ [ `events.defaultMaxListeners` ] : #events_events_defaultmaxlisteners 
16151620[ `fs.ReadStream` ] : fs.md#fs_class_fs_readstream 
16161621[ `net.Server` ] : net.md#net_class_net_server 
16171622[ `process.on('warning')` ] : process.md#process_event_warning 
0 commit comments