[英]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.