角度2中 EventEmitter.next()和 EventEmitter.exit()的区别

EventEmitter.emit()EventEmitter.next()的区别是什么? 它们都将事件发送给订阅的侦听器。

export class MyService {
@Output() someEvent$: EventEmitter<any> = new EventEmitter();


someFunc() {
this.someEvent$.emit({myObj: true});


this.someEvent$.next({myObj: true});
}
}

EventEmitter 的文档目前帮助不大。

29074 次浏览

在最新版本(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()正如您所期望的那样。