- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 rxJava 的新手,这可能是一个非常愚蠢的问题,但我无法弄清楚如何在重试时找到异常类型。我想在特定异常(例如 Io 异常)上重试,但在其他异常上重试我想将异常传递到链中。
public Observable<List<String>> getData()
{
return apiConsumer.getData()
.retryWhen(new Func1<Observable<? extends Throwable>, Observable<?>>()
{
@Override
public Observable<?> call(Observable<? extends Throwable> observable)
{
// if(exception type == io exception)
return observable.delay(5, TimeUnit.SECONDS);
//else
// dont retry, pass the exception to onError
}
});
}
最佳答案
试试下面的代码:
return apiConsumer.getData().retryWhen(new Func1<Observable<? extends Throwable>, Observable<?>>() {
@Override
public Observable<?> call(Observable<? extends Throwable> observable) {
return observable.flatMap(new Func1<Throwable, Observable<?>>() {
@Override public Observable<?> call(Throwable throwable) {
if(throwable instanceof IOException) {
// Retry code
// For example: retry after 5seconds
return Observable.timer(5, TimeUnit.SECONDS);
}
// Pass the throwable
return Observable.error(throwable);
}
});
}
});
关于android - Observable.retrywhen 中的异常类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42746155/
我正在编写逻辑,用于每 t 秒检查一个对象的状态,直到它完成。我决定使用 retryWhen 运算符。 getObjectStatus(someObject: someObjectInstance)
我正在关注 this tutorial然后添加这一行: .retryWhen(errors -> errors.flatMap(error -> Observable.timer(30, TimeUn
我一直在使用 retryWhen() 方法,我注意到如果你在 retryWhen() 中使用 filter() 并且如果 filter() 失败,则不会执行回调,甚至 onCompleted() 也不
我对 retryWhen 有疑问。 我正在做一个条形码扫描应用程序,要求是当状态代码为500时,我们将重试请求,如果为400,则将该条形码推送到数组中(列出错误400的条形码)。 我需要按照上面的要求
我正在通过重试实现数据库更新方法。遵循 retryWhen() 运算符的通用模式,如下所述:Using Rx Java retryWhen() .. ..但是我的重试逻辑从未执行过。我正在调试它,可以
看,我在 StackBlitz 上创建了问题 https://stackblitz.com/edit/rxjs-nndpag 我不知道如何正确使用 retryWhen 运算符。我希望它重新订阅我的 p
我正在尝试使用 java Rx(版本 1)重试。 我想要执行 retryWhen 而不是简单的 retry() 因为我希望在达到限制时返回具有特定值的可观察值,而不是仅仅抛出异常. 所以,检查这个 h
我使用 RXJava 调用一个昂贵的递归函数。大多数时候它运行得非常快,但有时它会生成太长的 take 方式 如果线程仍在运行,有没有办法在 5 秒后使用 retryWhen()? observab
我正在学习如何在 RxJava2 中进行数据轮询 到目前为止,这是我的代码。 private io.reactivex.Single getMyTask() { return io.
当对我的外部服务之一的外部 http 请求失败时,我正在使用 retryWhen。问题是我正在使用 RxHelper.toObservable(httpClient.request(method,
我有这样的东西: service.getStuff() .map(...) .observeOn(AndroidSchedule
我是 rxJava 的新手,这可能是一个非常愚蠢的问题,但我无法弄清楚如何在重试时找到异常类型。我想在特定异常(例如 Io 异常)上重试,但在其他异常上重试我想将异常传递到链中。 public Obs
我在 Android 应用程序中使用 Retrofit 和 RxJava 进行通信,并且必须处理解析来自看似正常的 HTTP 响应(状态 200 代码)的响应时的错误。 我还实现了一种使用 retry
我有一个应用程序需要 session (cookie) 来处理网络调用。我正在使用 Retrofit+RxJava。但是, session 可能会过期(Retrofit 错误,状态为 401 Unau
我一直在尝试在 RxSwift 上测试 retryWhen 运算符,但遇到了 Reentrancy Anomaly 问题,这是代码: Observable.create { observer in
我正在玩 RxJava retryWhen运算符(operator)。在互联网上很少找到关于它的信息,唯一值得一提的是 this .这也不足以探索我想了解的各种用例。我还加入了异步执行并通过回退重试,
我想以增加的时间间隔触发 retrywhen(), socketResponse.retryWhen(attempts => { return attempts.zip(Observab
我正在尝试进行 API 调用(使用 angular4),它会在失败时使用 retryWhen 重试。我希望它延迟 500 毫秒并重试。这可以通过以下代码实现: loadSomething(): Obs
如何在 retryWhen 中设置延迟? import 'rxjs/add/operator/retry'; import 'rxjs/add/operator/retrywhen'; ... con
我正在创建一个 Angular Http 重试拦截器。当我重试 1 次时,我的代码如下所示: return next.handle(req).pipe( retryWhen((error)
我是一名优秀的程序员,十分优秀!