RxJava 如何正确地重新订阅 onError
RxJava How to properly Resubscribe onError
所以我正在做一个 android 项目,目前,我正在使用 RxJava 从 WS 获取数据并在准备就绪后立即显示。我正在使用以下方法,我不确定这是最好的方法。
如果 onError 被调用,重新订阅
private void getGeneralLiveData(Observable<CurrentGameInfo> obsCurrentGameInfoBySummonerId) {
/**
* Get General Live Data
*/
subscriptions.add(
obsCurrentGameInfoBySummonerId
.doOnSubscribe(() -> currentGameGlobalInfo.enableProgressBar(true))
.doOnUnsubscribe(() -> currentGameGlobalInfo.enableProgressBar(false))
.subscribe(onNext -> ... ,onError-> {
getGeneralLiveData(obsCurrentGameInfoBySummonerId);
}
);
目前正在运行,我得到了我想要的结果。但我不确定这是最好的方法。所以我有两个问题:
- 有什么合适的方法可以做到这一点吗?
使用retry运算符,看这个答案:
How to terminate an Observable?
所以我正在做一个 android 项目,目前,我正在使用 RxJava 从 WS 获取数据并在准备就绪后立即显示。我正在使用以下方法,我不确定这是最好的方法。
如果 onError 被调用,重新订阅
private void getGeneralLiveData(Observable<CurrentGameInfo> obsCurrentGameInfoBySummonerId) { /** * Get General Live Data */ subscriptions.add( obsCurrentGameInfoBySummonerId .doOnSubscribe(() -> currentGameGlobalInfo.enableProgressBar(true)) .doOnUnsubscribe(() -> currentGameGlobalInfo.enableProgressBar(false)) .subscribe(onNext -> ... ,onError-> { getGeneralLiveData(obsCurrentGameInfoBySummonerId); } );
目前正在运行,我得到了我想要的结果。但我不确定这是最好的方法。所以我有两个问题:
- 有什么合适的方法可以做到这一点吗?
使用retry运算符,看这个答案:
How to terminate an Observable?