简体   繁体   English

Angular 2 中 EventEmitter.next() 和 EventEmitter.emit() 的区别

[英]Difference between EventEmitter.next() and EventEmitter.emit() in Angular 2

What is the difference between EventEmitter.emit() and EventEmitter.next() ? EventEmitter.emit()EventEmitter.next()什么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. EventEmitter 的文档目前不是很有帮助。

In the latest version(Ng9), the source code of event_emitter.ts goes as following:在最新的版本(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 extends from parent class Subject . EventEmitter自父类Subject And emit method call super.next() as you may expected.并如您所料, emit方法调用super.next()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM