我有以下问题:
我正在构建一个异步过滤消息的应用程序。我想构建类似的东西,使用Observables作为过滤器(使用.filter()):
输入 - 过滤器1 - 过滤器2 - SUBSCRIBER1
| __filter3 - 过滤器4 - subscriber2用户
| __filter5 - filter6 - subscriber3用户
| __filter7 - subscriber4
输入将是一个链表,因此我可以使用Observable.from()创建可观察链。然后我想创建一个可观察树,如上图所示。我遇到的问题是我不知道如何将信息广播到下一个节点,例如:什么通过filter5,发射到filter6和filter7。对于所有可观察对象都应该这样做,直到到达树的末尾,并且我可以让订阅者使用该流。
非常感谢!
答案 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();