2016-10-11 43 views
2

我可以在angulajs应用程序内使用RxJS创建发布/订阅消息消息队列吗?例如,我有两个模块: 模块A 模块B 它们作为单独的npm包存在,但在ModuleC中连接 - 它是主壳。使用RxJS实现用于angularjs模块之间通信的MessageBus

我不想创建一个依赖作为ModuleD,并创建模块之间的紧密耦合。所以我的想法是使用RxJS创建消息总线。 这可能吗?

我相信一个API看起来就像是: RxQueue.subscribe("name:of:the:queuemessage", handler => { handler.result }); RxQueue.create("name:of:the:queuemessage", (observer) => { // implementation of usual Rx subscribtion })

+0

使用[RxJS Extensions for Angular](https://github.com/Reactive-Extensions/rx.angular.js)。 – georgeawg

+0

@georgeawg与问题无关。我不想在模块之间创建耦合。 – IamStalker

回答

0

它可能不是你在寻找什么,但对于不同的组件和模块之间共享状态和数据,你可以使用终极版/ NGRX店。

Redux是您可以将状态发送到商店的架构。如果事情发生了变化,商店将自行更新并通知所有听取它的人。

所以你的模块既可以订阅商店,也可以听事件。如果他们想要沟通,他们可以发送消息给商店。如果事情发生了变化,商店会通知所有人。 一个区别是,该存储对象实际上将该对象存储为临时数据库。这不是真正的队列行为。

结帐http://redux.js.org/欲了解更多信息。

+0

嗨,谢谢你的回答 - 但我实际上是在寻找一个队列行为。我正在考虑使用redux实现,但是我的具体实现需要开销。并使用它与angularjs(ng1)它实际上是多余的。但是如果你能够给我一个好的工作例子,我会重新考虑它。当然,如果对你来说不是一件麻烦事。 – IamStalker