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);
})
将重试。