| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1266,6 +1266,58 @@ const { getEventListeners, EventEmitter } = require('node:events'); | |||
| 1266 | 1266 | } | |
| 1267 | 1267 | ``` | |
| 1268 | 1268 | ||
| 1269 | + ## `events.getMaxListeners(emitterOrTarget)` | ||
| 1270 | + | ||
| 1271 | + <!-- YAML | ||
| 1272 | + added: REPLACEME | ||
| 1273 | + --> | ||
| 1274 | + | ||
| 1275 | + * `emitterOrTarget` {EventEmitter|EventTarget} | ||
| 1276 | + * Returns: {number} | ||
| 1277 | + | ||
| 1278 | + Returns the currently set max amount of listeners. | ||
| 1279 | + | ||
| 1280 | + For `EventEmitter`s this behaves exactly the same as calling `.getMaxListeners` on | ||
| 1281 | + the emitter. | ||
| 1282 | + | ||
| 1283 | + For `EventTarget`s this is the only way to get the max event listeners for the | ||
| 1284 | + event target. If the number of event handlers on a single EventTarget exceeds | ||
| 1285 | + the max set, the EventTarget will print a warning. | ||
| 1286 | + | ||
| 1287 | + ```mjs | ||
| 1288 | + import { getMaxListeners, setMaxListeners, EventEmitter } from 'node:events'; | ||
| 1289 | + | ||
| 1290 | + { | ||
| 1291 | + const ee = new EventEmitter(); | ||
| 1292 | + console.log(getMaxListeners(ee)); // 10 | ||
| 1293 | + setMaxListeners(11, ee); | ||
| 1294 | + console.log(getMaxListeners(ee)); // 11 | ||
| 1295 | + } | ||
| 1296 | + { | ||
| 1297 | + const et = new EventTarget(); | ||
| 1298 | + console.log(getMaxListeners(et)); // 10 | ||
| 1299 | + setMaxListeners(11, et); | ||
| 1300 | + console.log(getMaxListeners(et)); // 11 | ||
| 1301 | + } | ||
| 1302 | + ``` | ||
| 1303 | + | ||
| 1304 | + ```cjs | ||
| 1305 | + const { getMaxListeners, setMaxListeners, EventEmitter } = require('node:events'); | ||
| 1306 | + | ||
| 1307 | + { | ||
| 1308 | + const ee = new EventEmitter(); | ||
| 1309 | + console.log(getMaxListeners(ee)); // 10 | ||
| 1310 | + setMaxListeners(11, ee); | ||
| 1311 | + console.log(getMaxListeners(ee)); // 11 | ||
| 1312 | + } | ||
| 1313 | + { | ||
| 1314 | + const et = new EventTarget(); | ||
| 1315 | + console.log(getMaxListeners(et)); // 10 | ||
| 1316 | + setMaxListeners(11, et); | ||
| 1317 | + console.log(getMaxListeners(et)); // 11 | ||
| 1318 | + } | ||
| 1319 | + ``` | ||
| 1320 | + | ||
| 1269 | 1321 | ## `events.once(emitter, name[, options])` | |
| 1270 | 1322 | ||
| 1271 | 1323 | <!-- YAML | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -215,6 +215,7 @@ module.exports = EventEmitter; | |||
| 215 | 215 | module.exports.once = once; | |
| 216 | 216 | module.exports.on = on; | |
| 217 | 217 | module.exports.getEventListeners = getEventListeners; | |
| 218 | + module.exports.getMaxListeners = getMaxListeners; | ||
| 218 | 219 | // Backwards-compat with node 0.10.x | |
| 219 | 220 | EventEmitter.EventEmitter = EventEmitter; | |
| 220 | 221 | ||
@@ -932,6 +933,23 @@ function getEventListeners(emitterOrTarget, type) { | |||
| 932 | 933 | emitterOrTarget); | |
| 933 | 934 | } | |
| 934 | 935 | ||
| 936 | + /** | ||
| 937 | + * Returns the max listeners set. | ||
| 938 | + * @param {EventEmitter | EventTarget} emitterOrTarget | ||
| 939 | + * @returns {number} | ||
| 940 | + */ | ||
| 941 | + function getMaxListeners(emitterOrTarget) { | ||
| 942 | + if (typeof emitterOrTarget?.getMaxListeners === 'function') { | ||
| 943 | + return _getMaxListeners(emitterOrTarget); | ||
| 944 | + } else if (emitterOrTarget?.[kMaxEventTargetListeners]) { | ||
| 945 | + return emitterOrTarget[kMaxEventTargetListeners]; | ||
| 946 | + } | ||
| 947 | + | ||
| 948 | + throw new ERR_INVALID_ARG_TYPE('emitter', | ||
| 949 | + ['EventEmitter', 'EventTarget'], | ||
| 950 | + emitterOrTarget); | ||
| 951 | + } | ||
| 952 | + | ||
| 935 | 953 | /** | |
| 936 | 954 | * Creates a `Promise` that is fulfilled when the emitter | |
| 937 | 955 | * emits the given event. | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,19 @@ | |||
| 1 | + 'use strict'; | ||
| 2 | + | ||
| 3 | + require('../common'); | ||
| 4 | + const assert = require('node:assert'); | ||
| 5 | + const { getMaxListeners, EventEmitter, defaultMaxListeners, setMaxListeners } = require('node:events'); | ||
| 6 | + | ||
| 7 | + { | ||
| 8 | + const ee = new EventEmitter(); | ||
| 9 | + assert.strictEqual(getMaxListeners(ee), defaultMaxListeners); | ||
| 10 | + setMaxListeners(101, ee); | ||
| 11 | + assert.strictEqual(getMaxListeners(ee), 101); | ||
| 12 | + } | ||
| 13 | + | ||
| 14 | + { | ||
| 15 | + const et = new EventTarget(); | ||
| 16 | + assert.strictEqual(getMaxListeners(et), defaultMaxListeners); | ||
| 17 | + setMaxListeners(101, et); | ||
| 18 | + assert.strictEqual(getMaxListeners(et), 101); | ||
| 19 | + } | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments