我为此苦苦挣扎了将近 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”的第二个函数。此函数验证一些数据并根据验证结果发出事件。
我发现,监听器工作正常并且事件是正确发出的。但是,看起来事件是在函数 b 的上下文中发出的,而侦听器在函数 a 的上下文中工作。为了进一步调查,我在函数 b 中添加了以下行:
this.on('event', function(){
console.log('event emitted!');
});
这有效。有谁能够帮我?我确信解决方案非常简单。=(