1. 이벤트 에미터 패턴(Event Emitter Pattern)
이벤트 발생과 이벤트 리스너 등록, 그리고 이벤트 전달까지 프로그래밍 방식을 통해 처리하는 방법
이벤트 에미터란, 이벤트 발생 및 전달을 위한 기능을 제공하는 객체
이벤트 에미터 객체는 이벤트 목록을 관리하며, 등록된 이벤트 리스너들에게 이벤트 발생 시 적절한 처리 요청
2. 이벤트 에미터 패턴 사용하기
Node.js는 내장된 events 모듈을 통해 이벤트 에미터 패턴 지원
EventEmitter 객체를 생성하여 사용
2-1. 이벤트 발생
const EventEmitter = require('events');
// 이벤트 핸들러 선언
const myEmitter = new EventEmitter();
// 'my-event' 이벤트 등록
myEmitter.on('my-event', () => {
console.log('My event occurred.');
});
// 이벤트 발생
myEmitter.emit('my-event');
2-2. 이벤트 리스너 등록
on() 메소드를 사용하여 이벤트 리스너를 등록
이벤트 발생 시 등록된 이벤트 핸들러가 실행되며, 해당 이벤트에 필요한 인자를 함께 전달 가능
myEmitter.on('other-event', (a, b) => {
console.log(`Other event occurred with two arguments: ${a}, ${b}.`);
});
// 이벤트 발생
myEmitter.emit('other-event', 'hello', 'world');
2-3. 이벤트 핸들러 제거
removeListener() 메소드를 사용하여 이벤트 핸들러 제거
const EventEmitter = require('events');
const myEmitter = new EventEmitter();
const listener = () => {
console.log('This listener will be removed after calling once.');
};
// 'remove-listener' 이벤트 리스너 등록
myEmitter.on('remove-listener', listener);
// 이벤트 핸들러 호출
myEmitter.emit('remove-listener');
// 'remove-listener' 이벤트 리스너 제거
myEmitter.removeListener('remove-listener', listener);
// 제거된 이벤트 핸들러 호출
myEmitter.emit('remove-listener');
반응형
'개발정리 (nodeJS)' 카테고리의 다른 글
[nodeJS] Docker로 Node.JS 배포하기 (0) | 2023.07.03 |
---|---|
[nodeJS] 우분투로 Node.JS 배포하기 (0) | 2023.06.27 |
[nodeJS] 자주 사용하는 Node.js 패턴 정리 2 (콜백 패턴) (0) | 2023.06.22 |
[nodeJS] 자주 사용하는 Node.js 패턴 정리 1 (모듈 패턴) (0) | 2023.06.21 |
[nodeJS] Node.js와 Express에서 미들웨어 (Middleware) 사용하기 (0) | 2023.06.20 |