我会看看使用RxJava与改造。我喜欢Zip函数,but there's a ton of others。下面是使用Java 8邮编的例子:在
[1, 2]
[3, 4]
[5, 6]
Sequence complete
改造这结果不应该被困难得多
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
);
。
您的翻新服务如果您需要状态码,对象应返回Observable<...>
或Observable<Result<...>>
。
你会随后致电:
Observable.zip(
getMyRetrofitService().getCall1(),
getMyRetrofitService().getCall2(),
(result1, result2) -> return [result1,result2])
.subscribe(combinedResults -> //Combined! Do something fancy here.)
如果1个请求失败的两个电话,将它停止整个执行? @bkach? – ericn
对于HTTP状态代码:对于改进1,是的,它会停止执行并抛出异常。随着改造2它不会。 [来源(根据请求执行)](https://futurestud.io/tutorials/retrofit-2-upgrade-guide-from-1-9)。否则 - 在任何其他“失败”(崩溃等) - 是的,它会停止执行并抛出异常。这可以在我上面例子中没有实现的'onError'中处理。 – bkach