‘emitter.setMaxListeners()´
method is used to increase (or) decrease the maximum listeners limit. Calling
emitter.setMaxListeners(n) takes precedence over
EventEmitter.defaultMaxListeners.
var EventEmitter = require('events').EventEmitter; var emitter1 = new EventEmitter(); var emitter2 = new EventEmitter(); /* Set the maximum listeners to 29*/ emitter1.setMaxListeners(29); console.log("Maximum listeners for emitter1 : %d", emitter1.getMaxListeners()); console.log("Maximum listeners for emitter2 : %d", emitter2.getMaxListeners()); console.log("Default Maximum listeners for all emitter instances : %d", EventEmitter.defaultMaxListeners);
Output
Maximum
listeners for emitter1 : 29
Maximum
listeners for emitter2 : 10
Default
Maximum listeners for all emitter instances : 10
You
can inspect the emitted warnings from a process using ‘proess.on('warning')’.
var EventEmitter = require('events').EventEmitter; EventEmitter.defaultMaxListeners = 3; var emitter = new EventEmitter(); emitter.on('demo',() => { console.log("listener1"); }); emitter.on('demo',() => { console.log("listener2"); }); emitter.on('demo',() => { console.log("listener3"); }); emitter.on('demo',() => { console.log("listener4"); }); emitter.emit('demo'); process.on('warning', (warning) => { console.warn("Warning name : ", warning.name); // Print the warning name console.warn("Warning message : ", warning.message); // Print the warning message console.warn("Warning stack trace : ", warning.stack); // Print the stack trace });
Output
listener1 listener2 listener3 listener4 (node:27464) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 4 demo listeners added. Use emitter.setMaxListeners() to increase limit Warning name : MaxListenersExceededWarning Warning message : Possible EventEmitter memory leak detected. 4 demo listeners added. Use emitter.setMaxListeners() to increase limit Warning stack trace : MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 4 demo listeners added. Use emitter.setMaxListeners() to increase limit at _addListener (events.js:243:17) at EventEmitter.addListener (events.js:259:10) at Object.<anonymous> (C:\Users\krishna\Documents\Study\nodejs\examples\HelloWorld.js:19:9) at Module._compile (internal/modules/cjs/loader.js:689:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10) at Module.load (internal/modules/cjs/loader.js:599:32) at tryModuleLoad (internal/modules/cjs/loader.js:538:12) at Function.Module._load (internal/modules/cjs/loader.js:530:3) at Function.Module.runMain (internal/modules/cjs/loader.js:742:12) at startup (internal/bootstrap/node.js:266:19)
No comments:
Post a Comment