What is the difference between EventEmitter.emit() and EventEmitter.next()? Both dispatching the event to the subscribed listeners.
export class MyService {
@Output() someEvent$: EventEmitter<any> = new EventEmitter();
someFunc() {
this.someEvent$.emit({myObj: true});
this.someEvent$.next({myObj: true});
}
}
The documenation for the EventEmitter is not so helpful at the moment.
They do the same. emit() is the current version, next() is deprecated.
In the latest version(Ng9), the source code of event_emitter.ts goes as following:
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 extends from parent class Subject. And emit method call super.next() as you may expected.