console.log('它们是:',emitter.listeners('data'));
执行结果如下:
E:developmentdocumentnodejsdemo>node event-example.js
emitter实例的data事件绑定了2个回调函数
它们是: [ [Function: cbA], [Function: cbB] ]
7、获取和设置emitter的最大监听数量
nodejs对同一事件的监听数量建议不宜超过10个,这个可以查看EventEmitter.defaultMaxListeners属性便可得知,如下所示:
console.log(EventEmitter.defaultMaxListeners);//结果为10个emitter通过getMaxListeners()方法获取最大监听数量以及setMaxListeners(n)方法设置最大监听数量,如下所示:
var cbA = ()=>{},
cbB = ()=>{};
var emitter = new myEmiter();
emitter.setMaxListeners(1);
emitter.on('data',cbA);
emitter.on('data',cbB);
console.log(emitter.getMaxListeners());执行结果如下:
E:developmentdocumentnodejsdemo>node event-example.js
emitter的事件最大监听数是:1
(node:6808) Warning: Possible EventEmitter memory leak detected. 2 data listener
s added. Use emitter.setMaxListeners() to increase limit
如上结果所示,如果设置了最大监听数量,则同一事件的监听最好不要超过该最大值,否则很可能发送内存泄漏。
events模块便介绍到这。希望对大家的学习有所帮助,也希望大家多多支持软件开发网。









