NodeJs 의 EventEmitter 의 간단 한 활용

2683 단어
더 읽 기
Node.js EventEmitter
Node. js 의 모든 비동기 I / O 작업 이 완료 되면 이벤트 대기 열 에 이 벤트 를 보 냅 니 다.
Node. js 의 많은 대상 이 이 벤트 를 나 눠 줍 니 다. 하나의 net. server 대상 은 새로운 연결 이 있 을 때마다 이 벤트 를 나 눠 줍 니 다. fs. readStream 대상 은 파일 이 열 릴 때 이 벤트 를 보 냅 니 다.이 모든 사건 의 대상 은 events. EventEmitter 의 인 스 턴 스 입 니 다.
EventEmitter 클래스
이벤트 모듈 은 하나의 대상 만 제공 합 니 다: events. EventEmitter.EventEmitter 의 핵심 은 이벤트 트리거 와 이벤트 모니터 기능 의 패키지 입 니 다.
require ("events") 를 통 해이 모듈 에 접근 합 니 다.
//    events   
var events = require('events');
//    eventEmitter   
var eventEmitter = new events.EventEmitter();

 
EventEmitter 대상 이 실례 화 할 때 오류 가 발생 하면 'error' 이벤트 가 발생 합 니 다.새 모니터 를 추가 할 때 'newListener' 이벤트 가 실 행 됩 니 다. 모니터 가 제거 되면 'removeListener' 이벤트 가 실 행 됩 니 다.
다음은 간단 한 예 로 EventEmitter 의 용법 을 설명 합 니 다.
//event.js   
var EventEmitter = require('events').EventEmitter; 
var event = new EventEmitter(); 
event.on('some_event', function() { 
	console.log('some_event     '); 
}); 
setTimeout(function() { 
	event.emit('some_event'); 
}, 1000); 

 
실행 결 과 는 다음 과 같 습 니 다.
이 코드 를 실행 하면 1 초 후에 콘 솔 에서 'some' 을 출력 합 니 다.이벤트 이벤트 트리거그 원 리 는 이벤트 대상 이 이벤트 some 를 등록 한 것 이다.이벤트 의 모니터, 그리고 우 리 는 setTimeout 을 통 해 1000 밀리초 후에 이벤트 대상 에 게 이벤트 some 를 보 냅 니 다.이벤트, 이 때 some 호출이벤트 모니터.
$ node event.js 
some_event     

 
EventEmitter 의 모든 이 벤트 는 하나의 이벤트 이름과 여러 개의 매개 변수 로 구성 되 어 있 으 며, 이벤트 이름 은 하나의 문자열 로 일반적으로 일정한 의 미 를 표현 합 니 다.모든 이벤트 에 대해 EventEmitter 는 여러 개의 이벤트 감청 기 를 지원 합 니 다.
이벤트 가 실 행 될 때 이 이벤트 에 등 록 된 이벤트 모니터 가 순서대로 호출 되 고 이벤트 매개 변 수 는 리 셋 함수 매개 변수 로 전 달 됩 니 다.
우 리 는 아래 의 예 로 이 과정 을 설명 합 시다.
//event.js   
var events = require('events'); 
var emitter = new events.EventEmitter(); 
emitter.on('someEvent', function(arg1, arg2) { 
	console.log('listener1', arg1, arg2); 
}); 
emitter.on('someEvent', function(arg1, arg2) { 
	console.log('listener2', arg1, arg2); 
}); 
emitter.emit('someEvent', 'arg1   ', 'arg2   '); 

 상기 코드 를 실행 하면 다음 과 같이 실 행 됩 니 다.
$ node event.js 
listener1 arg1    arg2   
listener2 arg1    arg2   

 
상기 예 에서 emitter 는 이벤트 someEvent 에 두 개의 이벤트 감청 기 를 등록 한 다음 someEvent 이 벤트 를 촉발 했다.
실행 결과 두 개의 이벤트 감청 기 리 셋 함수 가 연이어 호출 되 는 것 을 볼 수 있 습 니 다.이것 이 바로 EventEmitter 의 가장 간단 한 용법 이다.
초보

좋은 웹페이지 즐겨찾기