>웹 프론트엔드 >JS 튜토리얼 >node.js_node.js에서 Emitter.on 메서드를 사용하기 위한 지침

node.js_node.js에서 Emitter.on 메서드를 사용하기 위한 지침

WBOY
WBOY원래의
2016-05-16 16:27:502024검색

방법 설명:

지정된 이벤트에 대한 리스너를 등록합니다.

문법:

코드 복사 코드는 다음과 같습니다.

Emitter.on(이벤트, 리스너)
Emitter.addListener(이벤트, 리스너)

수신 매개변수:

이벤트(문자열) 이벤트 종류
리스너(함수) 이벤트 발생 시 콜백 함수

예:

코드 복사 코드는 다음과 같습니다.

server.on('연결', 함수(스트림) {
console.log('누군가 연결되었습니다!');
});

소스코드:

코드 복사 코드는 다음과 같습니다.

EventEmitter.prototype.addListener = 함수(유형, 리스너) {
변수 m;
if (!util.isFunction(리스너))
Throw TypeError('리스너는 함수여야 합니다.');
if (!this._events)
This._events = {};
// === "newListener"를 입력하는 경우 재귀를 방지하기 위해
// 리스너에 추가하고 먼저 "newListener"를 내보냅니다.
if (this._events.newListener)
This.emit('newListener', 유형,
                util.isFunction(listener.listener) ?
Listener.listener : 청취자);
if (!this._events[유형])
// 하나의 리스너의 경우를 최적화합니다. 추가 배열 객체가 필요하지 않습니다.
This._events[type] = 청취자;
else if (util.isObject(this._events[type]))
// 이미 배열이 있으면 추가하면 됩니다.
This._events[유형].push(리스너);
그 외
// 두 번째 요소를 추가하면 배열로 변경해야 합니다.
This._events[유형] = [this._events[유형], 리스너];
// 리스너 누수 확인
if (util.isObject(this._events[type]) && !this._events[type].warned) {
변수 m;
If (!util.isUndefine(this._maxListeners)) {
        m = this._maxListeners;
} 그 밖의 {
m = EventEmitter.defaultMaxListeners;
}
If (m && m > 0 && this._events[type].length > m) {
This._events[type].warned = true;
console.error('(노드) 경고: 가능한 EventEmitter 메모리 '
'누출이 감지되었습니다. %d명의 청취자가 추가되었습니다.'
                        '제한을 늘리려면 Emitter.setMaxListeners()를 사용하세요.',
This._events[type].length);
console.trace();
}
}
이것을 돌려주세요;
};
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.