2016-10-25 19 views
19

Trong Góc 2 sự khác biệt giữa Trình phát sự kiện và Chủ đề để thông báo sự kiện là gì? Nó có vẻ như sự kiện phát ra ít phức tạp hơn để khai báo .... Cách nào được ưa thích bởi Angular 2?Góc phát hiện sự kiện 2 vs Chủ đề

dataRefreshEvent = new EventEmitter(); 

private companyDataAnnouncedSource = new Subject(); 
companyDataAnnouncedSource$ = this.companyDataAnnouncedSource.asObservable(); 
+0

Sau khi học xong Rxjs ngay bây giờ, tôi nhận ra rằng có thể thực hiện được nhiều thứ hơn với EventEmitters. –

Trả lời

30

Không có nhiều khác biệt. EventEmitter mở rộng Subject.

Nhóm Angular2 nhấn mạnh sự thật, rằng không nên sử dụng EventEmitter cho bất kỳ mục đích nào khác sau đó @Output() s trong các thành phần và chỉ thị.

Nhóm góc có thể thay đổi triển khai cơ bản của EventEmitter và ngắt mã người dùng sử dụng EventEmitter cho mục đích không được sử dụng. Đó là sự khác biệt chính.

+4

cảm ơn vì đã làm rõ. Tôi sẽ gắn bó với chủ đề sau đó mặc dù có vẻ như rất nhiều bước bổ sung để đạt được cùng một kết quả ..... giống như với rất nhiều với góc 2 –

+2

Bạn có một trích dẫn cho điều này? –

+0

Nó đã được đề cập bởi Misko trong ý kiến ​​để Github vấn đề. Tôi không có liên kết. –

6

Đồng thời EventEmitter được tự động dọn dẹp không giống như tùy chỉnh Subjects mà bạn cần hủy đăng ký trong móc nối vòng đời onDestroy.

+0

Đây là phần quan trọng nhất của EventEmitter và lý do nó tồn tại – DDRamone

+3

Bạn có bằng chứng không? Liên kết tới tài liệu? – Kugel

Các vấn đề liên quan