Я хочу реализовать логику с использованием RxJava в моем приложении для Android, которое требует трех параллельных вызовов API. Только третий вызов API имеет логику повтора. Если после трех попыток успех будет достигнут, то последующий вызов будет выполнен для четвертого API, иначе только результат первого и второго вызовов API будет передан абоненту.
Я пытался добиться этого с помощью оператора Zip, но затем застрял с логикой повторения для третьего вызова API.
Observable<String> observable1 = Observable.just("A","B");
Observable<Integer> observable2 = Observable.just(1,2);
Observable<Boolean> observable3 = Observable.just(Boolean.TRUE, Boolean.FALSE);
Observable.zip (observable1, observable2, observable3, new Function3 () {
@Override
public Object apply (String s, Integer integer, Boolean aBoolean) выдает исключение {
if (aBoolean == null) {
alphabets3.retry (3) .doOnComplete (новое действие () {
@Override
public void run () создает исключение {
// результат никогда не будет использован
}
});
}
return s+integer+aBoolean;
}
}).subscribe(new Observer<Object>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Object o) {
Log.e("onNext-->", o.toString());
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});