Javascript 在EventEmitter上,我如何知道可以收听的所有事件?

Javascript 在EventEmitter上,我如何知道可以收听的所有事件?,javascript,node.js,events,javascript-events,event-handling,Javascript,Node.js,Events,Javascript Events,Event Handling,假设我有一个从EventEmitter继承的对象,比如流或任何其他对象,有没有一种好方法可以知道我可以侦听的所有事件以及所有附加的事件侦听器 我认为问题的第二部分很简单,它将告诉我一个事件的所有听众。但是有没有办法事先知道我能听到的所有事件?据我所知,没有公共API或文档可以帮助您列出EventEmitter可以发出的所有事件 但是,如果查看,可以看到所有事件都存储在\u events属性中,因此代码可以在对象的键上循环并查找所有可能的事件。以下是如何列出事件名称的示例: var ee = ne

假设我有一个从EventEmitter继承的对象,比如流或任何其他对象,有没有一种好方法可以知道我可以侦听的所有事件以及所有附加的事件侦听器


我认为问题的第二部分很简单,它将告诉我一个事件的所有听众。但是有没有办法事先知道我能听到的所有事件?

据我所知,没有公共API或文档可以帮助您列出EventEmitter可以发出的所有事件

但是,如果查看,可以看到所有事件都存储在
\u events
属性中,因此代码可以在对象的键上循环并查找所有可能的事件。以下是如何列出事件名称的示例:

var ee = new SomeEventEmitter();
console.log(Object.keys(ee._events));
然而,由于这是无文件记录的,我建议你对此要小心


编辑:某些模块提供可能事件的列表,请参见(和)。

这仅列出至少有一个活动侦听器的事件。如果没有人注册为听众,那么你就不走运了。