事件发射器setMaxListeners(15)它在这里是如何工作的?

时间:2018-01-04 08:11:14

标签: javascript node.js events event-handling eventemitter

我在发射器上有两个不同的事件,我需要动态设置maxlistener计数。我已经浏览了许多教程和文档,但无法理解计数是否将设置为发射器上的每个单独事件,或者是否将设置为特定计数的所有事件。

 emitter.on('event1', function(){}) 
 emitter.on('event2', function(){}) 
 emitter.setMaxListeners(15);

当我们使用上面的代码时,将为event1和event2设置的最大侦听器数量组合为15,或者它将每个单独事件的侦听器计数设置为15。

例如:

Case 1:

event1 -- Max 15 listeners

event2 -- Max 15 listeners

OR

Case 2:

event1 listener + event2 listener  -- Max 15 listeners?

是否设置了案例1或案例2?

非常感谢任何帮助/建议。

谢谢。

1 个答案:

答案 0 :(得分:2)

  

默认情况下,如果超过10,EventEmitters将打印警告   为特定事件添加了侦听器。

这意味着限制是每个事件的均衡器。

  

emitter.setMaxListeners()方法允许修改限制   对于此特定的EventEmitter实例。该值可以设置为   无穷大(或0)表示无限数量的听众。

参考here

Eventemitter setMaxListener带来更多亮点。

  

默认情况下,任何一个都可以注册最多10个侦听器   事件。可以为单个EventEmitter实例更改此限制   使用emitter.setMaxListeners(n)方法。

参考here

虽然文档中没有明确说明,但可以从上述两个链接中暗示