我正在尝试在node.js中编写一个简单的库。这是我的库代码,位于“lib”文件夹中名为“index.js”的文件中:
var util = require("util");
var EventEmitter = require("events").EventEmitter;
util.inherits(Foo, EventEmitter);
function Foo() {
EventEmitter.call(this);
}
Foo.prototype.Something = function() {
console.log("Hello World")
this.emit("ready")
}
module.exports = Foo
这是我项目文件夹根目录中名为index.js的文件中的一些测试代码:
var Foo = require("./lib/index.js");
var foo = new Foo();
foo.Something();
foo.on("ready", function() {
console.log("Blah")
})
当我使用节点v0.12.7
运行此代码时,我看到“Hello World”,但不是“Blah”
我不认为我做错了什么,因为我之前在另一个项目中使用了发射器,但即使复制该代码也行不通。
关于它为什么不起作用的任何线索?
答案 0 :(得分:2)
你唯一错误的就是你在听之前调用函数(发出事件)。
只是颠倒最后两个陈述
foo.on("ready", function() {
console.log("Blah");
});
foo.Something();