NodeJs 의 EventEmitter 의 간단 한 활용
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 의 가장 간단 한 용법 이다.
초보
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.