我正在执行3个HTTP请求。我想同时触发所有请求,等待所有请求完成,然后合并三个请求,同时保留顺序。假设我有r1r2r3请求,并且我想按该顺序处理结果。我已经尝试过了:

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

在这种情况下,不能保证r3是返回列表中的索引2。有什么建议吗?

最佳答案

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

10-07 12:08