Reputation: 3969
I knew about:
retryWhen(...)
that allow us to retry on error
and repeatWhen(...)
that allow retrying on complete
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
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