Reputation: 2091
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.
Upvotes: 146
Views: 36159
Reputation: 2868
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.
Upvotes: 18
Reputation: 657466
They do the same. emit()
is the current version, next()
is deprecated.
Upvotes: 174