Rx java 如果为我的订阅调用onError,我如何重新启动我的observer?
我目前正在使用:Rx java 如果为我的订阅调用onError,我如何重新启动我的observer?,rx-java,Rx Java,我目前正在使用: PublishSubject<PubNubObserverData> = PublishSubject.create() 有人打电话来吗 当前,当出现错误时,订阅将停止。您可以使用重试()操作符立即自动重新订阅。或者,您可以使用retryWhen()操作符在延迟后重新订阅,或者仅在有条件的情况下重新订阅 observable .retryWhen( error -> error.flatMap( e -> Observable.timer(1, S
PublishSubject<PubNubObserverData> = PublishSubject.create()
有人打电话来吗
当前,当出现错误时,订阅将停止。您可以使用重试()
操作符立即自动重新订阅。或者,您可以使用retryWhen()
操作符在延迟后重新订阅,或者仅在有条件的情况下重新订阅
observable
.retryWhen( error -> error.flatMap( e -> Observable.timer(1, SECONDS))
将在1秒后重试订阅。使用flatMap()
您还可以测试错误类型,并且只在特定错误上重试
observable
.retryWhen( error -> error.flatMap( e -> {
if (e instanceof IOException) {return Observable.timer(1, SECONDS);}
return Observable.just( e );
} )
如果错误为IOException
,而不是任何其他类型的错误,则将重试。您可以使用retry()
运算符立即自动重新订阅。或者,您可以使用retryWhen()
操作符在延迟后重新订阅,或者仅在有条件的情况下重新订阅
observable
.retryWhen( error -> error.flatMap( e -> Observable.timer(1, SECONDS))
将在1秒后重试订阅。使用flatMap()
您还可以测试错误类型,并且只在特定错误上重试
observable
.retryWhen( error -> error.flatMap( e -> {
if (e instanceof IOException) {return Observable.timer(1, SECONDS);}
return Observable.just( e );
} )
如果错误为IOException
,而不是任何其他类型的错误,则将重试