객체이벤트 이미터
EventEmitter는 관찰자 패턴을 설정하는 데 사용할 수 있는 이벤트 트리거 개체입니다. 이벤트 트리거를 지원하는 개체는 모두 이 항목을 상속합니다.
이벤트가 트리거되면 해당 이벤트와 연결된 모든 리스너가 비동기적으로 호출됩니다. 또한 고도로 맞춤화 가능하고 유연한 코드를 생성할 수 있습니다.
일반적으로 사용되는 함수에는 addListener/on, Once, RemoveListener/off, RemoveAllListeners 및 Emit이 포함됩니다.
샘플 코드는 다음과 같습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23var fs = require('fs');
var EventEmitter = require('events');
var event = new EventEmitter();
event.on('read_file', function(filename) {
fs.readFile(filename, 'utf8', function(err, data) {
if (err) {
event.emit('error', err);
return;
}
event.emit('show_content', data);
});
});
event.on('error', function(err) {
console.log(`Error ${err}`);
});
event.on('show_content', function(content) {
console.log(content);
});
event.emit('read_file', 'test.txt');
위의 샘플 코드를 실행하면 이벤트 이미터 인스턴스 이벤트가 먼저 'read_file' 이벤트를 수신한 후, 이벤트가 트리거될 때 event.emit('read_file', 'test.txt')
파일을 읽는 작업을 트리거합니다 ( ). 읽기에 성공하면 'show_content' 이벤트가 발생하는데, 이때 'show_content' 이벤트를 수신한 함수가 실행되면서 파일 내용이 표시됩니다. 파일을 읽는 중 오류가 발생하면 'error' 이벤트가 발생하고 작업 실패가 처리됩니다.
이 모델은 비동기 작업을 다루는 비즈니스 시나리오에서 큰 이점을 제공합니다.
상속관계
건설자
EventEmitter
건설자
1new EventEmitter();
물체
이벤트 트리거 객체
1EventEmitter new EventEmitter;
정적 속성
defaultMaxListeners
정수, 기본 전역 최대 리스너 수
1static Integer EventEmitter.defaultMaxListeners;
멤버 함수
on
이벤트 핸들러를 객체에 바인딩
1
2Object EventEmitter.on(String ev,
Function func);
호출 매개변수:
- ev: 문자열, 이벤트 이름을 지정합니다.
- func: 함수, 이벤트 처리 함수를 지정합니다.
결과 반환:
- Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.
이벤트 핸들러를 객체에 바인딩
1Object EventEmitter.on(Object map);
호출 매개변수:
- map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름이 이벤트 이름으로 사용되고 속성 값이 이벤트 처리 함수로 사용됩니다.
결과 반환:
- Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.
addListener
이벤트 핸들러를 객체에 바인딩
1
2Object EventEmitter.addListener(String ev,
Function func);
호출 매개변수:
- ev: 문자열, 이벤트 이름을 지정합니다.
- func: 함수, 이벤트 처리 함수를 지정합니다.
결과 반환:
- Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.
이벤트 핸들러를 객체에 바인딩
1Object EventEmitter.addListener(Object map);
호출 매개변수:
- map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름이 이벤트 이름으로 사용되고 속성 값이 이벤트 처리 함수로 사용됩니다.
결과 반환:
- Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.
prependListener
이벤트 핸들러를 객체의 원점에 바인딩
1
2Object EventEmitter.prependListener(String ev,
Function func);
호출 매개변수:
- ev: 문자열, 이벤트 이름을 지정합니다.
- func: 함수, 이벤트 처리 함수를 지정합니다.
결과 반환:
- Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.
이벤트 핸들러를 객체의 원점에 바인딩
1Object EventEmitter.prependListener(Object map);
호출 매개변수:
- map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름이 이벤트 이름으로 사용되고 속성 값이 이벤트 처리 함수로 사용됩니다.
결과 반환:
- Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.
once
일회성 이벤트 핸들러를 객체에 바인딩합니다. 일회성 핸들러는 한 번만 트리거됩니다.
1
2Object EventEmitter.once(String ev,
Function func);
호출 매개변수:
- ev: 문자열, 이벤트 이름을 지정합니다.
- func: 함수, 이벤트 처리 함수를 지정합니다.
결과 반환:
- Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.
일회성 이벤트 핸들러를 객체에 바인딩합니다. 일회성 핸들러는 한 번만 트리거됩니다.
1Object EventEmitter.once(Object map);
호출 매개변수:
- map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름이 이벤트 이름으로 사용되고 속성 값이 이벤트 처리 함수로 사용됩니다.
결과 반환:
- Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.
prependOnceListener
이벤트 핸들러를 객체의 원점에 바인딩
1
2Object EventEmitter.prependOnceListener(String ev,
Function func);
호출 매개변수:
- ev: 문자열, 이벤트 이름을 지정합니다.
- func: 함수, 이벤트 처리 함수를 지정합니다.
결과 반환:
- Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.
이벤트 핸들러를 객체의 원점에 바인딩
1Object EventEmitter.prependOnceListener(Object map);
호출 매개변수:
- map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름이 이벤트 이름으로 사용되고 속성 값이 이벤트 처리 함수로 사용됩니다.
결과 반환:
- Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.
off
객체 처리 대기열에서 기능 할당 취소
1
2Object EventEmitter.off(String ev,
Function func);
호출 매개변수:
- ev: 문자열, 이벤트 이름을 지정합니다.
- func: 함수, 이벤트 처리 함수를 지정합니다.
결과 반환:
- Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.
객체 처리 대기열의 모든 기능 취소
1Object EventEmitter.off(String ev);
호출 매개변수:
- ev: 문자열, 이벤트 이름을 지정합니다.
결과 반환:
- Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.
객체 처리 대기열에서 기능 할당 취소
1Object EventEmitter.off(Object map);
호출 매개변수:
- map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름을 이벤트 이름으로 사용하고, 해당 속성의 값을 이벤트 처리 함수로 사용합니다.
결과 반환:
- Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.
removeListener
객체 처리 대기열에서 기능 할당 취소
1
2Object EventEmitter.removeListener(String ev,
Function func);
호출 매개변수:
- ev: 문자열, 이벤트 이름을 지정합니다.
- func: 함수, 이벤트 처리 함수를 지정합니다.
결과 반환:
- Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.
객체 처리 대기열의 모든 기능 취소
1Object EventEmitter.removeListener(String ev);
호출 매개변수:
- ev: 문자열, 이벤트 이름을 지정합니다.
결과 반환:
- Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.
객체 처리 대기열에서 기능 할당 취소
1Object EventEmitter.removeListener(Object map);
호출 매개변수:
- map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름을 이벤트 이름으로 사용하고, 해당 속성의 값을 이벤트 처리 함수로 사용합니다.
결과 반환:
- Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.
removeAllListeners
객체의 처리 대기열에서 모든 이벤트에 대한 모든 리스너를 취소합니다. 이벤트가 지정된 경우 지정된 이벤트에 대한 모든 리스너를 제거합니다.
1Object EventEmitter.removeAllListeners(String ev);
호출 매개변수:
- ev: 문자열, 이벤트 이름을 지정합니다.
결과 반환:
- Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.
객체의 처리 대기열에서 모든 이벤트에 대한 모든 리스너를 취소합니다. 이벤트가 지정된 경우 지정된 이벤트에 대한 모든 리스너를 제거합니다.
1Object EventEmitter.removeAllListeners(Array evs = []);
호출 매개변수:
- evs: 배열, 이벤트 이름 지정
결과 반환:
- Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.
setMaxListeners
호환성만을 위한 리스너 수의 기본 제한
1EventEmitter.setMaxListeners(Integer n);
호출 매개변수:
- n: 정수, 이벤트 수를 지정합니다.
getMaxListeners
호환성만을 위해 기본 제한 수의 리스너를 가져옵니다.
1Integer EventEmitter.getMaxListeners();
결과 반환:
- Integer, 기본 제한 수량을 반환합니다.
listeners
객체의 지정된 이벤트에 대한 리스너 배열을 쿼리합니다.
1Array EventEmitter.listeners(String ev);
호출 매개변수:
- ev: 문자열, 이벤트 이름을 지정합니다.
결과 반환:
- Array, 지정된 이벤트에 대한 리스너 배열을 반환합니다.
listenerCount
객체의 지정된 이벤트에 대한 리스너 수를 쿼리합니다.
1Integer EventEmitter.listenerCount(String ev);
호출 매개변수:
- ev: 문자열, 이벤트 이름을 지정합니다.
결과 반환:
- Integer, 지정된 이벤트에 대한 리스너 수를 반환합니다.
객체의 지정된 이벤트에 대한 리스너 수를 쿼리합니다.
1
2Integer EventEmitter.listenerCount(Value o,
String ev);
호출 매개변수:
- o: 값, 쿼리 개체를 지정합니다.
- ev: 문자열, 이벤트 이름을 지정합니다.
결과 반환:
- Integer, 지정된 이벤트에 대한 리스너 수를 반환합니다.
eventNames
쿼리 리스너 이벤트 이름
1Array EventEmitter.eventNames();
결과 반환:
- Array, 이벤트 이름의 배열을 반환합니다.
emit
이벤트를 적극적으로 트리거
1
2Boolean EventEmitter.emit(String ev,
...args);
호출 매개변수:
- ev: 문자열, 이벤트 이름
- args: ..., 이벤트 매개변수가 이벤트 처리 함수에 전달됩니다.
결과 반환:
- Boolean, 이벤트 트리거 상태를 반환하고, 응답 이벤트가 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
toString
객체의 문자열 표현을 반환하며 일반적으로 "[Native Object]"를 반환하며 객체 자체의 특성에 따라 다시 구현될 수 있습니다.
1String EventEmitter.toString();
결과 반환:
- String, 객체의 문자열 표현을 반환합니다.
toJSON
객체의 JSON 형식 표현을 반환하며 일반적으로 객체에 의해 정의된 읽을 수 있는 속성 컬렉션을 반환합니다.
1Value EventEmitter.toJSON(String key = "");
호출 매개변수:
- key: 문자열, 사용되지 않음
결과 반환:
- Value, 직렬화 가능한 JSON을 포함하는 값을 반환합니다.