Create a gist now

Instantly share code, notes, and snippets.

@jdamcd /DoWhile.java Secret
Last active Sep 20, 2015

Observable<ServiceResult> pollService() {
final PollingState state = new PollingState();
return Statement.doWhile(delayFetch(), state.shouldContinue())
.doOnNext(serverResult -> serverResult.isProcessing()
? pollingState.increment()
: pollingState.resultObtained())
.filter(result -> !result.isProcessing());
}
private Observable<ServiceResult> delayFetch() {
return Observable.timer(2, TimeUnit.SECONDS)
.flatMap(tick -> fetchResult());
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment