Instantly share code, notes, and snippets.

@jdamcd / Secret
Last active Sep 20, 2015

What would you like to do?
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