创建一个Observables树并添加一个Subscribers作为叶子

时间:2016-05-31 12:58:27

标签: java rx-java reactive-programming

我有以下问题:

我正在构建一个异步过滤消息的应用程序。我想构建类似的东西,使用Observables作为过滤器(使用.filter()):

输入 - 过滤器1 - 过滤器2 - SUBSCRIBER1
| __filter3 - 过滤器4 - subscriber2用户
| __filter5 - filter6 - subscriber3用户
      | __filter7 - subscriber4

输入将是一个链表,因此我可以使用Observable.from()创建可观察链。然后我想创建一个可观察树,如上图所示。我遇到的问题是我不知道如何将信息广播到下一个节点,例如:什么通过filter5,发射到filter6和filter7。对于所有可观察对象都应该这样做,直到到达树的末尾,并且我可以让订阅者使用该流。

非常感谢!

1 个答案:

答案 0 :(得分:1)

我不确定你的意思,但你可以简单地在树形结构中创建和链接Observable:

Observable input = ...

Observable o1 = input.filter(f1).filter(f2);
Observable o2 = input.filter(f3).filter(f4);
Observable o3 = input.filter(f5);
Observable o4 = o3.filter(f6);
Observable o5 = o3.filter(f7);

如果您不想多次使用该输入,可以publish

ConnectableObservable input = Observable.from(list).publish();

// ... chain as before

input.connect();