私はこれにほぼ2時間苦労していますが、まだ取得できません.=(説明のために、次のコードを取得しました。
var util = require('util');
var events = require('events').EventEmitter;
function a (){
//this is my first function
var b_obj = new b();
b_obj.on('event',function(){
console.log('Something happened!');
});
};
function b (){
//this is my second function
events.call(this);
this.emit('event');
};
util.inherits(b, events);
a();
だから私がやろうとしているのは、「a」という関数を手に入れたということです。この関数は、「b」という 2 番目の関数を呼び出します。この関数は、一部のデータを検証し、検証の結果に応じてイベントを発行します。
私が見つけたのは、リスナーが正常に動作し、イベントが正しく発行されていることです。しかし、イベントは関数 b のコンテキストで発行され、リスナーは関数 a のコンテキストで動作するように見えます。さらに調査するために、次の行を関数 b に追加しました。
this.on('event', function(){
console.log('event emitted!');
});
そして、これは機能します。誰でも私を助けることができますか?解決策は非常に簡単だと確信しています。=(