[英]Difference between EventEmitter.next() and EventEmitter.emit() in Angular 2
EventEmitter.emit()
和EventEmitter.next()
什么EventEmitter.next()
? 兩者都將事件分派給訂閱的偵聽器。
export class MyService {
@Output() someEvent$: EventEmitter<any> = new EventEmitter();
someFunc() {
this.someEvent$.emit({myObj: true});
this.someEvent$.next({myObj: true});
}
}
EventEmitter 的文檔目前不是很有幫助。
他們做同樣的事情。 emit()
是當前版本, next()
已棄用。
在最新的版本(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()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.