【发布时间】:2017-09-07 23:52:10
【问题描述】:
我希望将多个可观察对象的结果组合成一个父可观察对象。我不能一次访问所有的 observables,它们将在程序的整个执行过程中被订阅。
到目前为止,这是我的方法:
...
compoundObservable = compoundObservable.mergeWith(firstObservable);
...
compoundObservable = compoundObservable.mergeWith(secondObservable);
...
这种方法没有奏效,因为otherObservable 发送的事件没有被compoundObservable 的订阅者注册。
如何组合这些 observables?
【问题讨论】:
-
在您的情况下可以选择使用
Subject吗? -
所以,
firstObservable和secondObservable只有在有人订阅(当时是什么)compoundOversable之后才会创建? -
firstObservable和secondObservable已创建。我希望在compoundObservable中累积每个可观察的结果。至于Subject,我愿意接受 - 发布答案! -
好的,但是你什么时候订阅
compoundObservable?关键是所有的 Observable 都是不可变的:mergeWith返回一个与compoundObservable之前的值不同的新实例,即使您使用相同的变量名来保留它。要点是:您必须在订阅之前merge(With)- 如果您之后合并,您将永远不会使用合并后的 Observable。
标签: java rx-java reactive-programming observable