2016-03-26 2 views
0

のインスタンスである場合、私は、オブジェクトが持つEventEmitterチェックオブジェクトが持つEventEmitter

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

から継承した場合に発見するために、ダックタイピング以外の方法、を探しています私は、オブジェクトが持っている場合、私はちょうどチェックできると仮定イベントのエミッタがこれを行っていた機能のカップルはちょうど汚いです。

Node.jsでこれを行うより良い方法はありますか?また、何かがイベントエミッターの上にあるストリームであるかどうかを判断する方法がある場合は、それも便利です。

+0

'EventEmitter' instanceofはオブジェクトを? –

+0

ええ、彼らがmixinを使っているのならどうしますか? –

+1

それで、あなたは本当に特定のメソッドの存在をチェックすることしかできないようです... –

答えて

1

オブジェクトがEventEmmitterのインスタンスであるかどうかをチェックするには、ノード内のEventEmitterと比較できます。 EventEmmitterを公開する "events"モジュールが必要です。

私が見つかりました、あなたのために少しスニペット修正:

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 
}); 
関連する問題