앞선 아티클에서 이벤트 관련 메서드 예제를 살펴보았습니다.
const EventEmitter = require('events');
const myEvent = new EventEmitter();
myEvent.addListener('EVENT1', () => {
console.log('이벤트 1번');
});
myEvent.on('EVENT2', () => {
console.log('이벤트 2번');
});
myEvent.on('EVENT2', () => {
console.log('이벤트 2번 추가');
});
myEvent.once('EVENT3', () => {
console.log('이벤트 3번');
});
myEvent.emit('EVENT1');
myEvent.emit('EVENT2');
myEvent.emit('EVENT3');
myEvent.emit('EVENT3');
myEvent.on('EVENT4', () => {
console.log('이벤트 4번');
});
myEvent.removeAllListeners('EVENT4');
myEvent.emit('EVENT4');
const listener = () => {
console.log('EVENT 5번');
}
myEvent.on('EVENT5', listener);
myEvent.removeListener('EVENT5', listener);
myEvent.emit('EVENT5');
console.log(myEvent.listenerCount('EVENT2'));
/* 출력
이벤트 1번
이벤트 2번
이벤트 2번 추가
이벤트 3번
2
*/
각각의 메서드에 대한 설명을 살펴보겠습니다.
- on(이벤트, callback) : 이벤트 리스닝 동작으로 - 즉, 이벤트의 이름과 이벤트 발생 시 실행할 콜백을 연결하는 동작을 의미합니다. 이벤트 하나에 여러 개의 이벤트를 연결하는 것도 가능합니다.
- addListener(이벤트, callback) : on과 동일한 기능을 의미합니다.
- emit(이벤트) : 이벤트를 호출합니다. 여기에 등록했던 이벤트 이름을 인자로 전달해 실행하면, 해당 리스너에 등록된 콜백이 실행됩니다.
- once(이벤트, callback) : 한 번만 실행되는 이벤트입니다. 예제에서 'EVENT3'의 경우 두 번 실행했지만 실제로 콜백 실행은 한 번만 이루어졌습니다.
- removeAllListeners(이벤트) : 이벤트에 연결된 모든 이벤트 리스너를 제거합니다. 'EVENT4'가 제거된 이후에 실행되지 않은 것을 확인할 수 있습니다.
- removeListener(이벤트, 리스너) : 이벤트에 연결된 리스너를 하나씩 제거하는데, 리스너를 명기하는 것을 주의합시다. 'EVENT5' 예제를 확인하세요.
- off(이벤트, callback) : 노드 10 버전에서 추가된 메서드로, removeListener와 같은 기능입니다.
- listenerCount(이벤트) : 현재 리스너가 연결된 개수를 출력합니다.
'Programming > Node.js' 카테고리의 다른 글
4. Node 기능 살펴보기 (11) - 예외 처리하기 [2] (0) | 2024.06.24 |
---|---|
4. Node 기능 살펴보기 (11) - 예외 처리하기 [1] (0) | 2024.06.20 |
4. Node 기능 살펴보기 (10) - 이벤트 이해하기 [1/2] (0) | 2024.06.18 |
4. Node 기능 살펴보기 (9) - 스레드 풀 (1) | 2024.06.12 |
4. Node 기능 살펴보기 (8) - fs메서드 살펴보기 4 (0) | 2024.06.10 |