I would look at using RxJava using Retrofit. I like the Zip feature, but there are a ton of others . Here is an example Zip using Java 8:
odds = Observable.from([1, 3, 5, 7, 9]); evens = Observable.from([2, 4, 6]); Observable.zip(odds, evens, {o, e -> [o, e]}).subscribe( { println(it); }, // onNext { println("Error: " + it.getMessage()); }, // onError { println("Sequence complete"); } // onCompleted );
The result is
[1, 2] [3, 4] [5, 6] Sequence complete
Retrofitting should not be much more complicated.
Your update service. Objects must return Observable<...> or Observable<Result<...>> if you need status codes.
Then you called:
Observable.zip( getMyRetrofitService().getCall1(), getMyRetrofitService().getCall2(), (result1, result2) -> return [result1,result2]) .subscribe(combinedResults -> //Combined! Do something fancy here.)
source share