Nodejs:我的eventEmitter不会从其构造函数中发出事件

时间:2014-06-05 16:23:03

标签: javascript node.js events prototypal-inheritance eventemitter

我在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.

我无法理解我做错了什么。

0 个答案:

没有答案