this.emit("ready") 在 node.js 中什么都不做
this.emit("ready") does nothing in node.js
我正在尝试在 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"
我不认为我做错了什么,因为我之前在另一个项目中使用过发射器,但即使复制该代码也不起作用。
关于为什么它不起作用的任何线索?
你唯一做错的是你在听之前调用函数(发出事件)。
只需反转最后 2 个语句
foo.on("ready", function() {
console.log("Blah");
});
foo.Something();
我正在尝试在 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"
我不认为我做错了什么,因为我之前在另一个项目中使用过发射器,但即使复制该代码也不起作用。
关于为什么它不起作用的任何线索?
你唯一做错的是你在听之前调用函数(发出事件)。
只需反转最后 2 个语句
foo.on("ready", function() {
console.log("Blah");
});
foo.Something();