如何与RxJava执行有序合并?

时间:2015-10-26 12:29:03

标签: java rx-java

我正在执行3个HTTP请求。我想同时触发所有内容,等待所有内容完成,然后合并三个请求,同时保留序列的顺序。假设我有请求r1r2r3,我想按顺序处理结果。我试过这个:

Observable<HttpResponse> r1, r2, r3;
Observable<List<HttpResponse>> merged = Observable.merge(r1, r2, r3).buffer(3);

在这种情况下,无法保证r3在返回列表中是索引2。建议?

1 个答案:

答案 0 :(得分:3)

当前的RxJava快照包含一个concatMapEager,它将立即运行其源并一个接一个地加入它们。它将是1.0.15的一部分,但我不知道Netflix什么时候会发布它。如果您不想依赖快照,请执行the source代码并将其手动提升到您的序列中。