@@ -158,11 +158,13 @@ myEmitter.emit('error', new Error('whoops!'));
158
158
```
159
159
160
160
It 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` .
162
162
163
163
``` 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 ) => {
166
168
MyMonitoringTool .log (err);
167
169
});
168
170
myEmitter .emit (' error' , new Error (' whoops!' ));
@@ -205,12 +207,13 @@ ee2.on('something', async (value) => {
205
207
ee2[Symbol .for (' nodejs.rejection' )] = console .log ;
206
208
```
207
209
208
- Setting ` EventEmitter .captureRejections = true` will change the default for all
210
+ Setting ` events .captureRejections = true` will change the default for all
209
211
new instances of ` EventEmitter ` .
210
212
211
213
``` 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 ();
214
217
ee1 .on (' something' , async (value ) => {
215
218
throw new Error (' kaboom' );
216
219
});
@@ -306,106 +309,6 @@ changes:
306
309
307
310
The ` 'removeListener' ` event is emitted * after* the ` listener ` is removed.
308
311
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.17.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: v15.3.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
-
409
312
### ` emitter.addListener(eventName, listener) `
410
313
<!-- YAML
411
314
added: v0.1.26
@@ -496,7 +399,7 @@ added: v1.0.0
496
399
497
400
Returns the current max listener value for the ` EventEmitter ` which is either
498
401
set by [ ` emitter.setMaxListeners(n) ` ] [ ] or defaults to
499
- [ ` EventEmitter .defaultMaxListeners` ] [ ] .
402
+ [ ` events .defaultMaxListeners` ] [ ] .
500
403
501
404
### ` emitter.listenerCount(eventName) `
502
405
<!-- YAML
@@ -852,6 +755,61 @@ class MyClass extends EventEmitter {
852
755
}
853
756
```
854
757
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
+
855
813
## ` events.getEventListeners(emitterOrTarget, eventName) `
856
814
<!-- YAML
857
815
added:
@@ -1061,6 +1019,29 @@ Value: `Symbol.for('nodejs.rejection')`
1061
1019
1062
1020
See how to write a custom [ rejection handler] [ rejection ] .
1063
1021
1022
+ ## ` events.listenerCount(emitter, eventName) `
1023
+ <!-- YAML
1024
+ added: v0.9.12
1025
+ deprecated: v3.2.0
1026
+ -->
1027
+
1028
+ > Stability: 0 - Deprecated: Use [ ` emitter.listenerCount() ` ] [ ] instead.
1029
+
1030
+ * ` emitter ` {EventEmitter} The emitter to query
1031
+ * ` eventName ` {string|symbol} The event name
1032
+
1033
+ A class method that returns the number of listeners for the given ` eventName `
1034
+ registered on the given ` emitter ` .
1035
+
1036
+ ``` js
1037
+ const { EventEmitter , listenerCount } = require (' events' );
1038
+ const myEmitter = new EventEmitter ();
1039
+ myEmitter .on (' event' , () => {});
1040
+ myEmitter .on (' event' , () => {});
1041
+ console .log (listenerCount (myEmitter, ' event' ));
1042
+ // Prints: 2
1043
+ ```
1044
+
1064
1045
## ` events.on(emitter, eventName[, options]) `
1065
1046
<!-- YAML
1066
1047
added:
@@ -1128,6 +1109,29 @@ const ac = new AbortController();
1128
1109
process .nextTick (() => ac .abort ());
1129
1110
```
1130
1111
1112
+ ## ` events.setMaxListeners(n[, ...eventTargets]) `
1113
+ <!-- YAML
1114
+ added: REPLACEME
1115
+ -->
1116
+
1117
+ * ` n ` {number} A non-negative number. The maximum number of listeners per
1118
+ ` EventTarget ` event.
1119
+ * ` ...eventsTargets ` {EventTarget[ ] |EventEmitter[ ] } Zero or more {EventTarget}
1120
+ or {EventEmitter} instances. If none are specified, ` n ` is set as the default
1121
+ max for all newly created {EventTarget} and {EventEmitter} objects.
1122
+
1123
+ ``` js
1124
+ const {
1125
+ setMaxListeners ,
1126
+ EventEmitter
1127
+ } = require (' events' );
1128
+
1129
+ const target = new EventTarget ();
1130
+ const emitter = new EventEmitter ();
1131
+
1132
+ setMaxListeners (5 , target, emitter);
1133
+ ```
1134
+
1131
1135
<a id =" event-target-and-event-api " ></a >
1132
1136
## ` EventTarget ` and ` Event ` API
1133
1137
<!-- YAML
@@ -1606,14 +1610,14 @@ to the `EventTarget`.
1606
1610
1607
1611
[ WHATWG-EventTarget ] : https://dom.spec.whatwg.org/#interface-eventtarget
1608
1612
[ `--trace-warnings` ] : cli.md#cli_trace_warnings
1609
- [ `EventEmitter.defaultMaxListeners` ] : #events_eventemitter_defaultmaxlisteners
1610
1613
[ `EventTarget` Web API ] : https://dom.spec.whatwg.org/#eventtarget
1611
1614
[ `EventTarget` error handling ] : #events_eventtarget_error_handling
1612
1615
[ `Event` Web API ] : https://dom.spec.whatwg.org/#event
1613
1616
[ `domain` ] : domain.md
1614
1617
[ `emitter.listenerCount()` ] : #events_emitter_listenercount_eventname
1615
1618
[ `emitter.removeListener()` ] : #events_emitter_removelistener_eventname_listener
1616
1619
[ `emitter.setMaxListeners(n)` ] : #events_emitter_setmaxlisteners_n
1620
+ [ `events.defaultMaxListeners` ] : #events_events_defaultmaxlisteners
1617
1621
[ `fs.ReadStream` ] : fs.md#fs_class_fs_readstream
1618
1622
[ `net.Server` ] : net.md#net_class_net_server
1619
1623
[ `process.on('warning')` ] : process.md#process_event_warning
0 commit comments