【问题标题】:Check if object is instance of EventEmitter检查对象是否是 EventEmitter 的实例
【发布时间】:2016-03-26 06:20:25
【问题描述】:

我正在寻找一种方法,而不是鸭子打字,以发现对象是否继承自 EventEmitter

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

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

有没有更好的方法来使用 Node.js 做到这一点?此外,如果有一种方法可以确定某事物是否是事件发射器之上的流,那也很有用。

【问题讨论】:

  • object instanceof EventEmitter ?
  • 是的,但如果他们只使用 mixin 呢?
  • 那看来你真的只能检查特定方法的存在了……
  • 我什至不确定在 node.js 核心事件发射器中使用 mixin 是否符合规定

标签: javascript node.js eventemitter


【解决方案1】:

要检查对象是否是 EventEmmitter 的实例,您可以将其与节点内的 EventEmitter 进行比较。只需要“事件”模块,它将公开一个 EventEmmitter。

我为你找到并修改了一个小sn-p:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 2016-07-07
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多