阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Node.js events EventEmitter.defaultMaxListeners

      Node.js events EventEmitter.defaultMaxListeners

      新增于: v0.11.2

      设置 EventEmitter.defaultMaxListeners 要谨慎,因为会影响所有 EventEmitter 实例,包括之前创建的。

      优先使用 emitter.setMaxListeners(n) 而不是 EventEmitter.defaultMaxListeners。

      限制不是硬性的。 EventEmitter 实例可以添加超过限制的监听器,但会向 stderr 输出跟踪警告,表明检测到可能的内存泄漏。

      对于单个 EventEmitter 实例,可以使用 emitter.getMaxListeners() 和 emitter.setMaxListeners() 暂时地消除警告:

      const EventEmitter = require('events');
      class MyEmitter extends EventEmitter {}
      
      const myEmitter = new MyEmitter();
      
      myEmitter.setMaxListeners(myEmitter.getMaxListeners() + 1);
      myEmitter.once('event', () => {
          // 做些操作
          emitter.setMaxListeners(
              Math.max(myEmitter.getMaxListeners() - 1, 0)
          );
      });
      

      –trace-warnings 命令行标志可用于显示此类警告的堆栈跟踪。

      触发的警告可以通过 process.on(‘warning’) 进行检查,并具有附加的 emitter、 type 和 count 属性,分别指向事件触发器实例、事件名称、以及附加的监听器数量。

      其 name 属性设置为 ‘MaxListenersExceededWarning’。

      更多node event中的方法属性和事件,可以进入 node events EventEmitter 类 进行查看


      更多内容请参考:Node.js events 事件触发器,或者通过 点击对应菜单 进行查看;


      目录
      本文目录
      目录