2016-10-29 4 views
0

Ich kannte:RxJava: Wie wiederhole ich das nächste?

:

  • retryWhen(...), die uns auf Fehler

  • und repeatWhen(...) wiederholen lassen, die erneut versucht auf vollständige

wie dies jeder Betreiber Gibt es erlauben

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

Antwort

1

Hmm ... Nein, aber vielleicht geht das:

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