2017-04-17 1 views
1

EventEmitter는 단순히 객체의 함수를 매핑합니까? 예를</p> <pre><code>var event = { message: function(message){console.log(message);} } //polling here { if(response.type == "message") { event[response.type](response.message); } } </code></pre> <p>를 들어

events.on("message", function(message){console.log(message);}); 

//polling here 
{ 
    events.emit(response.type, response.message); 
} 

그렇지 않은 경우와 유사하게 작동합니다, 어떻게 .once 같은 보조 기능보다는 EventEmitter 다른 다른가요?

나는 여러 가지 이유로 동시에 두 가지 방법을 사용하고 있습니다. EventEmitter는 이벤트 구동 함수 용이고 event 객체는 조직화 된 함수 집합을 단일 컨텍스트 (event)에서 트리거하는 데 사용됩니다.

편집 :

수정 된 코드는 여러 기능/청취자와 함께 작동합니다.

var event = { 
    message: [] 
} 

event.message.push(function(message){console.log(message)}); 

//polling here 
{ 
    if(response.type == "message") 
    { 
     for(var func in event[response.type]) 
     { 
      event[response.type][func](response.message); 
     } 

    } 
} 

답변

0

음, 더 넓은 관점에서는, 실제로는 내부의 변이합니다 그 수신기 기능을 제거하기 위해 또한 이벤트 리스너 함수를 등록하는 메소드의 세트를 노출하고 객체 (EvenEmitter 클래스)과 기타 다양한 기능이며 닫힌 이벤트 객체

이벤트를 발생시키는 모든 핵심 모듈은 EventEmitter 클래스에서 상속되므로 중앙 이벤트 객체에 액세스 할 수 있습니다. 예, 함수를 객체에 매핑합니다.

+0

안녕하세요, 제 편집을 확인하십시오. – Vic

+0

나는 대답을 업데이트했지만 내 관점에서는 그렇습니다. – Nivesh

관련 문제