【问题标题】:Difference between EventEmitter.next() and EventEmitter.emit() in Angular 2Angular 2 中 EventEmitter.next() 和 EventEmitter.emit() 之间的区别
【发布时间】:2016-06-20 19:35:45
【问题描述】:

EventEmitter.emit()EventEmitter.next() 有什么区别?两者都将事件分派给订阅的侦听器。

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

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

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

documenation for the EventEmitter 目前没有太大帮助。

【问题讨论】:

    标签: angular angular2-services


    【解决方案1】:

    在最新版本(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()

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 很高兴知道。谢谢。
      猜你喜欢
      • 1970-01-01
      • 2017-06-14
      • 2017-07-06
      • 1970-01-01
      • 1970-01-01
      • 2017-01-28
      • 2017-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多