Differenza tra EventEmitter.next () e EventEmitter.emit () in Angular 2


98

Qual'è la differenza tra EventEmitter.emit()e EventEmitter.next()? Entrambi inviano l'evento agli ascoltatori iscritti.

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

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

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

La documentazione per EventEmitter non è così utile al momento.

Risposte:



2

Nell'ultima versione (Ng9), il codice sorgente di è event_emitter.tsil seguente:

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

EventEmittersi estende dalla classe genitore Subject. E emitchiamata al metodo super.next()come ci si potrebbe aspettare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.