1
私のAndroidのアプリがあります。 このため、私はRxAndroidを使い、再試行を予定していました。RxAndroidを使用して再試行でチェーン2コールを呼び出します
私は再試行で1APIコールを行うことができましたが、2つの異なるエラーを表示する必要があります.1つはコール1が利用できないこと、もう1つはコール2が利用できないことです。
チェーン全体で再試行できますが、個々の操作を個別に再試行することをお勧めします。
私のコードは以下の通りです。私はcallApi2の前に "callApi1()"を追加する必要があります。私はリトライで別の観測可能性を持っていると言います。
Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
try {
subscriber.onNext(callApi2());
subscriber.onCompleted();
} catch (Exception e) {
subscriber.onError(e);
}
}
})
.retryWhen(new RetryWithDelay(20, 3000))
.timeout(TIME_OUT_SECONDS, TimeUnit.SECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new Subscriber<String>() {
@Override
public void onNext(String data) {
//show something
}
....
}
最初の呼び出しが成功した場合にのみ、2番目の呼び出しが必要です。それは連結で起こるのでしょうか? – gdogaru
これは、api呼び出しが失敗したときにどうなるかによって異なります。失敗した場合に例外がスローされた場合は、必要な動作を取得する必要があります。 – JohnWowUs