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 事件触发器,或者通过 点击对应菜单 进行查看;



AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

目前重心已经放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>