2017-08-14 41 views

回答

2

您可以使用retry()運營商立即自動重新訂閱。或者,您可以使用retryWhen()運營商延遲或僅有條件地重新訂閱。

observable 
    .retryWhen(error -> error.flatMap(e -> Observable.timer(1, SECONDS)) 

將在1秒後重試訂閱。使用flatMap(),你也可以測試這種錯誤,並只對特定的錯誤重試。如果誤差IOException而不是爲了任何其他類型的錯誤

observable 
    .retryWhen(error -> error.flatMap(e -> { 
    if (e instanceof IOException) {return Observable.timer(1, SECONDS);} 
     return Observable.just(e); 
    }) 

將重試。

相關問題