2016-10-29 31 views
0

我知道:RxJava:下一步如何重試?

  • retryWhen(...),使我們能夠重試錯誤

  • repeatWhen(...),允許在完成

重試是否有任何這樣的操作:

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

回答

1

嗯...不,但也許這樣做:

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