0
在该项目中,有很多模块。每个模块可能希望接收其他模块/模块发出的数据。Rx在Observable创建之前订阅
试图解决的问题是,当我们订阅一个可观察的A时,这个可观察的可能还没有被创建。为了解决这个问题,我们讨论了两种方法:
- 有一个可观察的注册表单例。每当观察者准备好时,将一对成对的注册表,并通知所有模块,注册表已更改。每个模块都将听取这个通知,并决定它是否是一个感兴趣的更改。如果通知观察者已准备就绪,请订阅它。如果observable被删除,更新注册表,删除相应的对,并通知模块,模块退订它。
- Rx实施event bus。使用Subject:创建一个单独的Subject,然后每当需要发送事件或数据或项目时,从该主题发出。在您的订阅者中,您只能通过对主题进行过滤来订阅特定事件。
第一种方法看起来非常简单,我不知道它为什么不好。但它对我来说看起来并不可扩展。第二种方法是用Rx替换otto/eventbus的推荐方法。
对这些方法有什么想法?