从多个可观察量中消耗最快的项目

时间:2015-08-19 10:44:58

标签: reactive-programming rx-java

我有多个observable,代表单项结果的长任务。

Observable<String> longOp1 = getDataFromServer(server1);
Observable<String> longOp2 = getDataFromServer(server2);
Observable<String> longOp3 = getDataFromServer(server3);

如何并行运行所有任务并仅消耗最快的结果,还丢弃其他可观察对象?

1 个答案:

答案 0 :(得分:0)

试试这个:

Observable<String> quickest = Observable.amb(longOp1, longOp2, longOp3);

现在,我使用Rx.NET在c#中编程,所以我的语法可能略有错误,但这应该非常接近。

.amb(...)运算符获取第一个结果并处理所有源可观察量。