Diferencia entre EventEmitter.next () y EventEmitter.emit () en Angular 2

98

¿Cuál es la diferencia entre EventEmitter.emit()y EventEmitter.next()? Ambos despachan el evento a los oyentes suscritos.

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

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

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

La documentación del EventEmitter no es tan útil en este momento.

Holger Stitz
fuente

Respuestas:

2

En la última versión (Ng9), el código fuente event_emitter.tses el siguiente:

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

EventEmitterse extiende desde la clase principal Subject. Y emitllamar al método super.next()como era de esperar.

Chris Bao
fuente