【问题标题】:RxJava How to properly Resubscribe onErrorRxJava 如何正确重新订阅 onError
【发布时间】:2015-10-12 10:05:18
【问题描述】:

所以我正在开发一个 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);
                     }
    );
    

目前正在运行,我得到了我想要的结果。但我不确定这是最好的方法。所以我有两个问题:

  • 有没有合适的方法来完成同样的事情?

【问题讨论】:

    标签: android rx-java


    【解决方案1】:

    使用retry 运算符,请参阅此答案:

    How to terminate an Observable?

    【讨论】:

    • 是的,这很好,重试就可以了。这是我的错,我问错了答案。我的意思是问同样的答案,但在链式可观察的背景下。在这种情况下,重试会应用于原始的 observable(我的意思是链中的第一个 observable),还是只应用于最后一个?
    猜你喜欢
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多