3 回答
TA贡献1848条经验 获得超2个赞
我想在此指出,警告是有原因的,并且很有可能正确的修复不会增加限制,但要弄清楚为什么要为同一事件添加如此多的监听器。如果您知道为什么要添加如此多的听众并且确信这是您真正想要的,那么只能增加限制。
我发现这个页面是因为我收到了这个警告,在我的情况下,我使用的一些代码中存在一个错误,即将全局对象转换为EventEmitter!我当然建议不要在全球范围内增加限制,因为你不希望这些事情被忽视。
TA贡献1825条经验 获得超4个赞
默认情况下,任何单个事件最多可以注册10个侦听器。
如果是您的代码,您可以通过以下方式指定maxListeners:
const emitter = new EventEmitter()
emitter.setMaxListeners(100)
// or 0 to turn off the limit
emitter.setMaxListeners(0)
但如果它不是您的代码,您可以使用该技巧来全局增加默认限制:
require('events').EventEmitter.prototype._maxListeners = 100;
当然你可以关掉限制但要小心:
// turn off limits by default (BE CAREFUL)
require('events').EventEmitter.prototype._maxListeners = 0;
BTW。代码应该在应用程序的最开头。
ADD:从节点0.11开始,此代码也可以更改默认限制:
require('events').EventEmitter.defaultMaxListeners = 0
- 3 回答
- 0 关注
- 1876 浏览
添加回答
举报