ความแตกต่างระหว่าง EventEmitter.next () และ EventEmitter.emit () ใน Angular 2


102

อะไรคือความแตกต่างระหว่าง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ไม่เป็นประโยชน์ในขณะนี้

คำตอบ:



3

ในเวอร์ชันล่าสุด (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); }
}

EventEmitterSubjectยื่นออกมาจากชั้นผู้ปกครอง และemitวิธีการโทรsuper.next()ตามที่คุณคาดหวัง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.