关于如何使用rxjs在angular2中实现消息服务的建议

关于如何使用rxjs在angular2中实现消息服务的建议,angular,rxjs,Angular,Rxjs,我的目标是: 允许在单个应用程序中管理应用程序的所有消息 组成部分 到目前为止,我得出的结论是: MessageService:Singleton。任何想要发送消息的人都可以在这里调用addMsg 信息是主体可观察的 newMessages:Subject=newsubject() MessageViewer:侦听MessageService并显示消息的组件 constructor(private\u msgService:MessageService){ 这是。msgService

我的目标是:

  • 允许在单个应用程序中管理应用程序的所有消息 组成部分
到目前为止,我得出的结论是:

  • MessageService:Singleton。任何想要发送消息的人都可以在这里调用addMsg
信息是主体可观察的

newMessages:Subject=newsubject()

  • MessageViewer:侦听MessageService并显示消息的组件
constructor(private\u msgService:MessageService){
这是。msgService.getMessages().subscribe(
data=>this.showMsg(数据)
)
}

这里有完整的演示。


这是一个很好的实现还是有更好的方法来实现这一点?

看起来不错;-)其余部分是注册此服务的位置。如果是针对整个应用程序,则是在引导时或在主组件中…另请参阅,尤其是个人,我可能更喜欢使用与消息总线相对应的可观察对象。这就是我很久以前使用KnockoutJS实现事件驱动架构和中介功能的方式。我认为,可观察性更高,更容易在状态机中实现;在中介器上,您所要做的就是提供
.publish
.subscribe
方法,这些方法实现了自己的消息过滤——您希望消息总线使用这些方法;不过,我还是拿出了一些头痛和陈词滥调。我会对你竖起大拇指,因为你是为数不多的几个支持这个的人之一:)。