我正在使用rxjava改造2并且我在函数时使用重试实现了指数后退,但是当请求失败时,我在onError回调中没有收到错误,但我立即收到onCompleted。
如何在onError回调中收到错误?
这是我的代码:
mRestApi.getObject(url)
.retryWhen(attempts -> attempts.zipWith(Observable.range(1, 3), (n, i) -> i)
.flatMap(i -> {
Log.d(TAG, "delay retry by " + i + " second(s)");
return Observable.timer(i, TimeUnit.SECONDS);
}));
答案 0 :(得分:1)
您可以尝试doOnError
运算符,例如
mRestApi.getObject(url)
.doOnError(e -> System.out.println(e.getMessage()))
.retryWhen(attempts -> attempts.zipWith(Observable.range(1, 3), (n, i) -> i)
.flatMap(i -> {
Log.d(TAG, "delay retry by " + i + " second(s)");
return Observable.timer(i, TimeUnit.SECONDS);
}));