const EventEmitter = require('events');
const myEvent = new EventEmitter();
// myEvent 객체 생성
myEvent.addListener('event1', ()=>{
console.log('이벤트1');
});
// myEvent 객체의 event1 이벤트에 대한 리스너 생성
myEvent.on('event2', ()=>{
console.log('이벤트2');
});
// myEvent 객체의 event2 이벤트에 대한 리스너 생성
myEvent.on('event2', ()=>{
console.log('이벤트2 추가');
});
// myEvent 객체의 event2 이벤트에 대한 리스너 추가
myEvent.once('event3', ()=>{
console.log('이벤트3');
});
// myEvent 객체의 event3 이벤트에 대한 리스너 생성. 이벤트는 한번만 호출
myEvent.emit('event1');
myEvent.emit('event2');
myEvent.emit('event3');
// 이벤트 호출
myEvent.emit('event3');
// event3은 once 이벤트이므로 이는 실행 안됨
myEvent.on('event4',()=>{
console.log('이벤트4');
});
// event4에 대한 리스너 생성
myEvent.removeAllListeners('event4');
// event4에 대한 모든 리스너 삭제
const listener = ()=>{
console.log('이벤트5');
};
// 리스너 생성
myEvent.on('event5', listener);
// event5에 대한 리스너로 listenr를 사용
myEvent.removeListener('event5', listener);
// event5에 연결된 listenr라는 리스너 삭제
myEvent.emit('event5');
// event5에 연결된 유일한 리스너를 삭제했으므로 실행 안됨
console.log(myEvent.listenerCount('event2'));
// event2에 연결된 리스너의 개수
위 코드의 수행 결과는 아래와 같습니다.
이벤트1
이벤트2
이벤트2 추가
이벤트3
2
event 객체는 다음과 같은 메서드를 가지고 있습니다.
이 포스팅의 예시 코드는 Node.js교과서(조현영, 길벗)에서 발췌했습니다.