본문 바로가기
학습 log (이론)/node.js

'노드의 기본' 알아보기 #이벤트편

by abbear25 2016. 10. 21.

노드는 대부분 이벤트를 기반으로 하는 비동기 방식으로 처리


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';

결과



반응형