2012-02-28 7 views
0

나는 자바 스크립트와 노드를 동시에 가르치려고하고 있으며 사용자 정의 이벤트가 작동하지 않는다. 오류가 발생하지 않고 이벤트가 발생하지 않습니다. 누군가 내 (가능성이 명백한) 논리 오류를 지적 할 수 있습니까?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! –