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



我有以下问题:

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

input--filter1-filter2-subscriber1
nbsp nbsp nbsp __filter3-filter4-subscriber2
nbsp nbsp nbsp __filter5--filter6--subscriber3
 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp|__filter7--订阅者4

输入将是一个链表,所以我可以使用observable.from()创建可观察链。然后我想创建一个可观察的树,如上图所示。我遇到的问题是,我不知道如何将信息广播到下一个节点,例如:什么传递filter5,发射到filter6和filter7。这应该发生在所有可观测的情况下,直到到达树的末端,我可以拥有消耗流的订阅者。

非常感谢!

我不知道你的意思,但你可以简单地在树结构中创建和链接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);

如果你不想多次消耗输入,你可以publishit:

ConnectableObservable input = Observable.from(list).publish();
// ... chain as before
input.connect();

相关内容

最新更新