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.

Holger Stitz
sumber

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.

Chris Bao
sumber