노드는 대부분 이벤트를 기반으로 하는 비동기 방식으로 처리
EventEmitter
event emitter를 상속받아 on(), emit()메소드를 이용하여 상태 및 결과 전달
on(event, listener), 지정한 이벤트의 리스너를 추가
once(event, listener), 지정한 이벤트의 리스너를 추가(최초 1회만 실행)
removeListener(event, listener), 리스너 제거
emit(event, param), 지정한 이벤트로 param 전달
main.js
var Calc = require('./calc3'); //calc3.js의 객체 호출
var calc = new Calc();
calc.emit('stop'); /* 3.지정한 이벤트로 param전달 */
console.log(Calc.title + '에 stop 이벤트 전달함');
calc3.js
var util = require('util'); //객체 호출
var emitter = require('events').EventEmitter; //객체 호출
var Calc = function(){
var that = this;
that.on('stop', function(){ /* 1.이벤트 리스너 등록 */
console.log("Calc에서 stop event 전달됨");
});
};
util.inherits(Calc, emitter); /* 2.Calc를 emitter에 상속시킴 */
Calc.prototype.add = function(a, b){ //prototype 속성 및 값 추가
return a + b;
};
module.exports = Calc; //main에서 호출할 수 있도록 지정
module.exports.title = 'calculator';결과
반응형
'학습 log (이론) > node.js' 카테고리의 다른 글
| '노드의 기본' 알아보기 #파일편3 (0) | 2016.10.22 |
|---|---|
| '노드의 기본' 알아보기 #파일편2 (0) | 2016.10.21 |
| '노드의 기본' 알아보기 #파일편1 (0) | 2016.10.21 |
| '노드의 기본' 알아보기 #모듈편 (0) | 2016.10.21 |
| ' Module' 사용하기 (0) | 2016.10.13 |