I’m trying to teach myself both javascript and nodejs at the same time here and have not been able to get custom event emitting working. I am not receiving any errors, just not seeing the event being emitted. Is someone able to point out my (likely obvious) logical error?
I have a class declared in a separate module:
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;
And then a main file:
var logger = require( "./logManager" ).logger;
var myLogger = new logger;
myLogger.init();
myLogger.on( 'initialised' ){
console.log( "IT'S ALIVE!" );
}
First off, you have a syntax error in your main file. When you attach an event handler, that event handler is always a
function, and the signature ison(eventName, eventHandler), so you need:Also, you have to attach the event handler before you call
init, or you will miss the event, so in full: