0
我目前正在使用:如果我的訂閱調用了onError,如何重新啓動觀察者?
PublishSubject<PubNubObserverData> = PublishSubject.create()
我想知道我怎麼可以重新啓動訂閱時
onError(Throwable e)
被稱爲?
當出現錯誤時,訂閱將停止。
我目前正在使用:如果我的訂閱調用了onError,如何重新啓動觀察者?
PublishSubject<PubNubObserverData> = PublishSubject.create()
我想知道我怎麼可以重新啓動訂閱時
onError(Throwable e)
被稱爲?
當出現錯誤時,訂閱將停止。
您可以使用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);
})
將重試。