[angular] Angular 2에서 EventEmitter.next ()와 EventEmitter.emit ()의 차이점

EventEmitter.emit()과 의 차이점은 무엇입니까 EventEmitter.next()? 둘 다 구독 된 리스너에게 이벤트를 전달합니다.

export class MyService {
  @Output() someEvent$: EventEmitter<any> = new EventEmitter();

  someFunc() {
   this.someEvent$.emit({myObj: true});

   this.someEvent$.next({myObj: true});
  }
}

EventEmitter에 대한 documenation는 순간에 그렇게 도움이되지 않습니다.



답변

그들은 똑같이합니다. emit()현재 버전 next()이며 더 이상 사용되지 않습니다.

참조 https://github.com/angular/angular/blob/b5b6ece65a96f5b8f134ad4899b56bf84afe3ba0/modules/angular2/src/facade/async.dart#L49


답변

최신 버전 (Ng9)의 소스 코드는 event_emitter.ts다음과 같습니다.

export class EventEmitter<T extends any> extends Subject<T> {
  /**
   * Emits an event containing a given value.
   * @param value The value to emit.
   */
  emit(value?: T) { super.next(value); }
}

EventEmitter부모 클래스에서 확장됩니다 Subject. 그리고 예상대로 emit메서드 호출 super.next().


답변