EventEmitter.emit()
和EventEmitter.next()
之间有什么区别?两者都将事件分派给订阅的侦听器。
export class MyService {
@Output() someEvent$: EventEmitter<any> = new EventEmitter();
someFunc() {
this.someEvent$.emit({myObj: true});
this.someEvent$.next({myObj: true});
}
}
答案 0 :(得分:88)
他们也这样做。 emit()
是当前版本,next()
已弃用。
答案 1 :(得分:3)
在最新版本(Ng9)中,event_emitter.ts
的源代码如下:
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
从父类Subject
扩展。如您所料,emit
方法调用super.next()
。