我正在寻找一种方法,除了鸭子类型,以发现一个对象是否继承自EventEmitter
https://nodejs.org/api/events.html
我想我可以检查一下这个对象是否有一些事件发射器的功能,这只是脏的。
使用Node.js有更好的方法吗?此外,如果有办法确定某事物是否是一个事件发射器之上的流,那么这也是有用的。
答案 0 :(得分:2)
要检查对象是否是EventEmmitter的实例,您可以将其与节点内的EventEmitter进行比较。只需要"事件"将公开EventEmmitter的模块。
我找到并修改了一小段代码:
var http = require("http");
http.get("http://nodejs.org/", function (res) {
// res is an EventEmitter that represents the HTTP response
console.log(res instanceof require("events").EventEmitter); // true
console.log(typeof res); // object
});