我在Nodejs中遇到自定义事件发射器的问题。我非常确定我已经正确地创建了eventemitter,因为我可以在其实例上触发并捕获事件。
但是,其构造函数中没有任何事件被触发。它们似乎都存在并且正确地注册了他们的听众,但是this.emit函数没有做任何事情。
为清楚起见,这是一个最小的失败示例:
var EventEmitter = require("events").EventEmitter,
util = require("util");
var MyEmitter = function() {
var self = this;
EventEmitter.call(this);
someExternalFunction(function callback() {
self.emit("event 1"); // Does not fire
console.log("fires");
});
this.emit("event 2"); // Does not fire
return this;
};
util.inherits(Browser,EventEmitter);
var myEmitterInstance = new MyEmitter();
myEmitterInstance.emit("event 3"); // fires
myEmitterInstance.on("event 1 - does not fire", function () {
//Do something with the results of someExternalFunction.
} // this function never runs.
我无法理解我做错了什么。