Angular 角度2事件发射器与主体
在Angular 2中,事件发射器和宣布事件的主题之间有什么区别?似乎事件发射器的声明不那么复杂……Angular 2更喜欢哪种方式Angular 角度2事件发射器与主体,angular,Angular,在Angular 2中,事件发射器和宣布事件的主题之间有什么区别?似乎事件发射器的声明不那么复杂……Angular 2更喜欢哪种方式 dataRefreshEvent = new EventEmitter(); private companyDataAnnouncedSource = new Subject(); companyDataAnnouncedSource$ = this.companyDataAnnouncedSource.asObservable(); 差别不大事件发射器扩展主
dataRefreshEvent = new EventEmitter();
private companyDataAnnouncedSource = new Subject();
companyDataAnnouncedSource$ = this.companyDataAnnouncedSource.asObservable();
差别不大<代码>事件发射器扩展
主题
Angular2团队强调了一个事实,EventEmitter
不应用于组件和指令中的@Output()
s之外的任何东西
Angular团队认为,他们可能会更改
EventEmitter
的底层实现,并破坏使用EventEmitter
的用户代码。这是主要的区别。此外,EventEmitter
会自动清除,这与您需要在onestory
生命周期挂钩中取消订阅的自定义主题不同。默认情况下,EventEmitter是同步的,而Subject不是。
您可以将标志传递给EventEmitter以使其异步。感谢您的澄清。我将继续讨论这个主题,尽管它似乎有很多额外的步骤来实现相同的结果……就像使用angular 2Do一样,你对此有引用吗?Misko在对Github问题的评论中提到了这一点。我没有联系。2018年还是这样吗?(5/6)@GünterZöchbauer谢谢你的消息来源,我希望文档也能有这些细节,再次感谢!在充分学习了Rxjs之后,我现在意识到可以用EventEmitter做更多的事情。这是EventEmitter最重要的部分,也是它存在的原因。你为什么这么说?请看这里:在不深入细节的情况下,任何可观察到的内容都将被跟踪并取消订阅。此答案不正确,请阅读示例。不确定您是否正确两者都是同步的