java - RxJava : How to retry on next?

标签 java rx-java

我知道:

  • retryWhen(...) 允许我们在出错时重试

  • repeatWhen(...) 允许完成后重试

有没有这样的运算符:

    return Observable.just(isUpdating)
            .repeatWhenOnNext(isUpdating -> { 
                if(isUpdating) {
                    return Observable.timer(2, TimeUnit.SECONDS); // repeat after two seconds
                } else {
                    return Observable.just(isUpdating); // flow down to concatMap
                }
            })
            .concatMap(o -> doSomeWorkONLYWhenIsNotUpdating());

最佳答案

嗯...不,但也许这样可以:

return Observable
    .interval(0, 2, TimeUnit.SECONDS)
    .filter(dummy -> !isUpdating)
    .take(1)
    .flatM(dummy -> doSomeWorkONLYWhenIsNotUpdating());

关于java - RxJava : How to retry on next?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40320095/

相关文章:

java - 在 Recyclerview 中取消 CountDownTimer

java - 收缩库代码

android - 在 Kotlin 中使用 RxJava 进行数据转换

java - fromCallable 和 defer 有什么区别?

java - 正确处理 RxJava 中的空 Observable

rx-java - RxJava : execute a list of Single in parallel and get the results in a list in the same order

java - RxJava - 按顺序上传文件 - 在调用 onNext 时发出下一个项目

java - Camel 路线执行优先级

java - Gradle 构建工具升级导致 ClassCastException

java - Jackson 多态类型处理 - 属性被丢弃