Alexandr
Alexandr

Reputation: 3969

RxJava: How to retry on next?

I knew about:

Is there any operator like this:

    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());

Upvotes: 0

Views: 274

Answers (1)

Tassos Bassoukos
Tassos Bassoukos

Reputation: 16142

Hmm... No, but maybe this will do:

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

Upvotes: 1

Related Questions