разбираюсь с rxjava на практике и столкнулся с задачей, которую не могу решить. Суть в том, что нужно выполнить 2 запроса к разным сервисам асинхронно (android приложение). Важно что с 2 сервиса ответ может придти 400, но при этом мне важно не потерять ответ от 1 сервиса.
Я попробовал так, в этом решении плохо то что если один сервер не ответит я потеряю ответ от другого. Как это правильно решить?
Observable
.zip(serv1Observable,
serv2Observable,
new BiFunction<Responce1, Responce2, Responce3>() {
@Override
public Responce3 apply(@NonNull Responce1 r1, @NonNull Responce2 r2) throws Exception {
return new Responce3(r1, r2);
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Responce3>() {
@Override
public void accept(@NonNull Responce3 r3) throws Exception {
}
}, new Consumer<Throwable>() {
@Override
public void accept(@NonNull Throwable throwable) throws Exception {
}
});