Излучение события в Node.js - PullRequest
       18

Излучение события в Node.js

0 голосов
/ 28 февраля 2012

Я пытаюсь научить себя и 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!" );
}

1 Ответ

0 голосов
/ 28 февраля 2012

Во-первых, у вас есть синтаксическая ошибка в вашем основном файле. Когда вы присоединяете обработчик событий, этот обработчик событий всегда равен 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();
...