我正在尝试在这里同时教我自己的javascript和nodejs,并且无法让自定义事件发送工作。我没有收到任何错误,只是没有看到事件被发出。有人能够指出我(可能是显而易见的)逻辑错误吗?
我在一个单独的模块中声明了一个类:
var util = require( 'util' ),
events = require( 'events' );
function logger(){
var logpath, initialised, logstream;
events.EventEmitter.call(this);
}
util.inherits(logger, events.EventEmitter);
logger.prototype.init = function(){
this.emit( 'initialised' );
}
exports.logger = logger;
然后是一个主文件:
var logger = require( "./logManager" ).logger;
var myLogger = new logger;
myLogger.init();
myLogger.on( 'initialised' ){
console.log( "IT'S ALIVE!" );
}
答案 0 :(得分:0)
首先,您的主文件中存在语法错误。附加事件处理程序时,该事件处理程序始终为function
,签名为on(eventName, eventHandler)
,因此您需要:
myLogger.on('initialised', function() {
console.log("IT'S ALIVE!");
});
此外,您必须在调用init
之前附加事件处理程序,否则您将错过该事件,所以完整:
var logger = require( "./logManager" ).logger;
var myLogger = new logger;
myLogger.on('initialised', function() {
console.log("IT'S ALIVE!");
});
myLogger.init();