final List<Order> orders = Observable
.from(searchAttributes)
.filter(searchAttribute-> !searchAttribute.isEmpty())
.flatMap(searchAttribute-> Observable.just(networkCall(searchAttribute)).subscribeOn(Schedulers.io()))
.toList()
.toBlocking()
.single();
我正在使用以下文章来学习RxJava: https://proandroiddev.com/understanding-rxjava-subscribeon-and-observeon-744b0c6a41ea
在上面的代码中,networkCall函数应该在单独的IO线程上发生,但是网络调用基本上在同一个IO线程上依次发生。如何使用RxJava并行调用?
答案 0 :(得分:0)
使用RxJava 2可以使用.parallel
。
来自this answer:
Flowable<Integer> vals = Flowable.range(1, 10);
vals.parallel()
.runOn(Schedulers.computation())
.map(i -> intenseCalculation(i))
.sequential()
.subscribe(val -> System.out.println(val));