2012-02-28 20 views
0

私はここで同時にjavascriptとnodejの両方を教えようとしていますが、カスタムイベントを発生させることができませんでした。私はエラーを受け取っていない、イベントが放出されているのを見ていない。誰かが私の(明らかに明らかな)論理エラーを指摘できますか?Node.jsでイベントを送信

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

まず第一に、あなたはあなたのメインのファイルに構文エラーが発生している

は、私は別のモジュールで宣言されたクラスを持っています。あなたは、イベントハンドラをアタッチすると、そのイベントハンドラは常に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(); 
+0

Argh!構文エラーは、この質問にコードを埋め込んだときに発生しました。実際の問題は、イベントが発生する前にイベントハンドラを設定していないということでした...そのような単純な問題は、私はそれを逃したとは思えません。 ありがとうございました! – Scotty

+0

私は考えました... NP! –

関連する問題