我希望将多个observable的结果合并到父observable中。我无法立即访问所有可观察对象,他们将在整个程序执行期间订阅。
到目前为止,这是我的方法:
...
compoundObservable = compoundObservable.mergeWith(firstObservable);
...
compoundObservable = compoundObservable.mergeWith(secondObservable);
...
该方法无效,因为otherObservable
发送的事件未由compoundObservable
的订阅者注册。
如何组合这些可观察量?
答案 0 :(得分:3)
使用Subject
您可以随时订阅可观察对象,并且主题的所有订阅者都将获得所有项目。但是,在调试时这可能有点棘手。
PublishSubject<Object> subject = PublishSubject.create();
Observable<Object> observable1 = ...;
observable1.subscribe(subject);
subject.subscribe(...) // will eventually also get emisions from observable2
Observable<Object> observable2 = ...;
observable2.subscribe(subject);
答案 1 :(得分:0)
如果我理解你的问题,你有几个操作符来配对你的观察点:
现在你应该确定你的观察者产生数据的速率,以及你打算如何配对他们正在产生的数据。
例如:
注意:此LINK还有一本免费的书(适用于.NET - RxNET)。检查组合序列中的配对序列部分,以获取更深入的说明和示例。语法类似,运算符的目的仍然是实现。