MEAN STACK node.js
테스트 환경 : Windows 10 64-bit
node.js는 EventEmitter 객체를 상속 받아서 이벤트를 발생시키고 처리할 수 있다.
event emitter methods
event |
이벤트명 |
listener |
이벤트 핸들러 함수명 |
addListener(‘event’,’listener’) |
'event'와 'listener'를 바인딩한다. 'event(name)'으로 지정한 함수를 호출한다. |
on(‘event’,’listener’) |
'event'와 'listener'를 바인딩한다. 'event(name)'으로 지정한 함수를 호출한다. |
once(‘event’,’listener’) |
'event'와 'listener'를 바인딩한다. 'event(name)'으로 지정한 함수를 호출한다. addListener, on과 다른 점은 한번만 호출한것이다. |
removeListener(‘event’,’listener’) |
'event'와 'listener'의 바인딩을 제거한다. |
removeAllListener([‘event’]) |
event 배열내에 들어가 있는 모든 함수에 대한 바인딩을 제거한다. |
setMaxListeners(n) |
eventEmitter에 바인딩될 수 있는 이벤트의 수를 n으로 변경한다. |
listeners(event) |
'event'명으로 바인딩된 모든 callback 함수명을 리턴한다. |
emit(‘event’,[args], [arg1], [...]) |
'event'명으로 이벤트를 생성하고, [args], [arg1], [...]에 정의된 값 들을 이벤트와 함께 전달한다. |
새로운 js 파일 생성후 아래 코드를 입력한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | var events = require('events'); var eventEmitter = new events.EventEmitter(); // listener #1 var listner1 = function listner1() { console.log('listner1 executed.'); } // listener #2 var listner2 = function listner2() { console.log('listner2 executed.'); } // listener #3 var listner3 = function listner3() { console.log('listner3 executed.'); } // listner1 함수와 'connection' event 바인드 eventEmitter.addListener('connection', listner1); // listner2 함수와 'connection' event 바인드 eventEmitter.on('connection', listner2); // listner3 함수와 'connection' event 바인드 eventEmitter.on('connection', listner3); // 'connection' 이벤트명으로 바인딩된 listener 수 var eventListeners = require('events').EventEmitter.listenerCount(eventEmitter,'connection'); console.log(eventListeners + " Listner(s) listening to connection event"); // connection event 발생 eventEmitter.emit('connection'); // Remove the binding of listner1 function // listner1, listner3 함수 바인딩 제거 eventEmitter.removeListener('connection', listner1); eventEmitter.removeListener('connection', listner3); console.log("Listner1,Listner2 will not listen now."); // Fire the connection event eventEmitter.emit('connection'); // 바인딩 제거후 listener 수 확인 eventListeners = require('events').EventEmitter.listenerCount(eventEmitter,'connection'); console.log(eventListeners + " Listner(s) listening to connection event"); console.log("Program Ended."); | cs |
노드 실행
node eventEmitter.js
결과 출력
3 Listner(s) listening to connection event
listner1 executed.
listner2 executed.
listner3 executed.
Listner1,Listner2 will not listen now.
listner2 executed.
1 Listner(s) listening to connection event
Program Ended.
참조 : http://www.tutorialspoint.com/nodejs/nodejs_event_emitter.htm
'개발' 카테고리의 다른 글
[Linux] 기본 명령어 모음 (0) | 2015.12.14 |
---|---|
[Linux] 사용자 & 그룹 명령어 모음 (0) | 2015.12.14 |
[Node.js] event loop (0) | 2015.12.14 |
[Node.js] callback 함수 사용하기 (0) | 2015.12.11 |
[Node.js] NPM - Node Package Manager (0) | 2015.12.09 |