¿Cuál es la diferencia entre EventEmitter.emit() y EventEmitter.next() ? Ambos envían 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 para EventEmitter no es tan útil en este momento.
Ellos hacen lo mismo. emit() es la versión actual, next() está en desuso.
Consulte también https://github.com/angular/angular/blob/b5b6ece65a96f5b8f134ad4899b56bf84afe3ba0/modules/angular2/src/facade/async.dart#L49
En la última versión (Ng9), el código fuente de event_emitter.ts es 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); } } EventEmitter se extiende desde la clase principal Subject . Y emit la llamada al método super.next() como esperaba.