Node.js EventEmitter.listeners方法使用说明
事件监听器的调试利器emitter.listeners(event)
,用起来还挺方便的。尤其在你写多了 Node.js 服务端代码之后,想快速看看某个事件到底挂了几个监听器,这个方法就派上用场了。
EventEmitter 的 listeners
方法,简单粗暴。你只要传个事件名进去,它就会把所有监听这个事件的方法丢成一个数组给你。咋用?就像这样:
server.on('connection', function (stream) {
console.log('someone connected!');
});
console.log(server.listeners('connection'));
// 输出:[ [Function] ]
其实不光是调试,像做插件系统、写中间件机制的时候,也会用到。你能通过这个方法动态判断事件流程,甚至做点链式控制逻辑。
要注意的是,它返回的是原始的监听函数数组,不带顺序标签或额外信息。如果你想要更多细节,Node.js 还有个新方法叫 emitter.rawListeners(event)
,更强一点。
顺便推荐几个扩展阅读的链接,想深入了解 EventEmitter 机制,可以看看:
如果你平时喜欢写点小工具或者搞自定义事件流,这个方法可以加书签,真的蛮实用的。
19.34KB
文件大小:
评论区