检查对象是否是EventEmitter的实例

时间:2016-03-26 06:20:26

标签: javascript node.js eventemitter

我正在寻找一种方法,除了鸭子类型,以发现一个对象是否继承自EventEmitter

https://nodejs.org/api/events.html

我想我可以检查一下这个对象是否有一些事件发射器的功能,这只是脏的。

使用Node.js有更好的方法吗?此外,如果有办法确定某事物是否是一个事件发射器之上的流,那么这也是有用的。

1 个答案:

答案 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
});