Sự khác biệt giữa EventEmitter.next () và EventEmitter.emit () trong Angular 2


98

Sự khác biệt giữa EventEmitter.emit()và là EventEmitter.next()gì? Cả hai đều gửi sự kiện đến người nghe đã đăng ký.

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

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

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

Tài liệu cho EventEmitter hiện tại không quá hữu ích.

Câu trả lời:



2

Trong phiên bản mới nhất (Ng9), mã nguồn của event_emitter.tsnó như sau:

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); }
}

EventEmittermở rộng từ lớp cha Subject. Và emitphương thức gọi super.next()như bạn có thể mong đợi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.