假设我有一个继承自 EventEmitter
的对象(例如流或任何其他对象),是否有一个好方法来了解我可以监听的所有事件以及所有附加的事件监听器?
我认为问题的第二部分很简单,emitter.listeners(event)
会告诉我某个事件的所有听众。但是有没有办法提前知道我可以监听的所有事件?
最佳答案
据我所知,没有公共(public) API 或文档可以帮助您列出 EventEmitter 可以发出的所有事件。
但是如果你查看EventEmitter source code ,您可以看到所有事件都存储在 _events
属性中,因此您的代码可以循环对象的键并查找所有可能的事件。以下是如何列出事件名称的示例:
var ee = new SomeEventEmitter();
console.log(Object.keys(ee._events));
但是,由于这没有记录,我建议您谨慎对待。
编辑:某些模块提供可能事件的列表,例如参见 SAX (以及 corresponding source )。
关于javascript - 在EventEmitter上,我如何知道我可以监听的所有事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19927008/