Perbedaan antara EventEmitter.next () dan EventEmitter.emit () di Angular 2


98

Apa perbedaan antara EventEmitter.emit()dan EventEmitter.next()? Keduanya mengirimkan acara tersebut ke pendengar yang berlangganan.

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

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

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

The documenation untuk EventEmitter tidak sangat membantu pada saat ini.

Jawaban:



2

Di versi terbaru (Ng9), kode sumber event_emitter.tsberjalan sebagai berikut:

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); }
}

EventEmittermeluas dari kelas induk Subject. Dan emitmetode panggilan super.next()seperti yang Anda harapkan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.