Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Events node.js事件发射器绑定到多个实例_Events_Node.js_Eventemitter - Fatal编程技术网

Events node.js事件发射器绑定到多个实例

Events node.js事件发射器绑定到多个实例,events,node.js,eventemitter,Events,Node.js,Eventemitter,如果我有一个监听事件发射器的类,那么绑定每个实例是错误的做法吗 function MyClass() { emitter.on('ready', function() { // do something }); } myclass = new MyClass(); 如果我多次调用emitter.on(),它会警告我 (节点)警告:检测到可能的EventEmitter内存泄漏。11 听众补充道。使用emitter.setMaxListeners()增加限制 事件发射

如果我有一个监听事件发射器的类,那么绑定每个实例是错误的做法吗

function MyClass() {

    emitter.on('ready', function() {
    // do something
    });

}

myclass = new MyClass();
如果我多次调用emitter.on(),它会警告我

(节点)警告:检测到可能的EventEmitter内存泄漏。11 听众补充道。使用emitter.setMaxListeners()增加限制

事件发射器是否意味着在类实例之外,每个模块只绑定一次

如果这是错误的,那么在触发事件时如何访问类实例


谢谢

警告是,您将11个事件侦听器连接到单个事件发射器上的
就绪
事件

通常,当您在单个事件发射器上多次侦听同一事件时,很可能是一个bug。例如,假设您有一个http事件发射器,如果您对
请求
事件侦听了11次,这可能是一个错误,那么您只希望侦听并处理一次请求

这是一个调试工具。你可以通过这样做来解决这个问题


emitter.setMaxListeners(500);//或者无论你认为什么是合理的限制

晚到派对,但值得注意的是,
setMaxListeners(0)
会完全禁用警告。这与
setMaxListeners(无限)