2017-08-10 149 views
0

我有使用情况下,我必须进行N个网络调用,我想按照执行它们的顺序接收数据。什么是最好的方式来做到这一点。使网络呼叫并行,没有使用rxjava交错

我试过使用concat操作符,但它是低效的,因为它是顺序的,并且合并操作符的结果顺序是未定义的。

+1

使用Zip,您可以等待所有网络电话完成。每个发射可能是一个有序的ArrayList。或者你可以合并,然后将所有的发射再次收集到有序的ArrayList中。之后flatMapIterable ... – masp

回答

1

您可以使用concat concatMapEager()的过载,这将为您带来像flatMap这样的并行性,同时保持排放源排序。

+0

谢谢@yosriz。正是我在找什么:) – Sravan