Angular 2でのEventEmitter.next()とEventEmitter.emit()の違い


98

違いは何である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のドキュメントはあまり役に立ちません。

回答:



2

最新版(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()

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.