首页 > 解决方案 > 如何在成功和错误时延迟 RxJava 订阅?

问题描述

无论错误或成功,我都想将订阅延迟到 XXXX 时间发送。使用以下代码,延迟仅适用于成功场景。请帮助我,以便它可以一直等待 XXXX 时间。

serviceRepository.getService()
                           .retry(0)
                           .map(value -> {
                               total = XXXX;
                               return value;
                           })
                           .observeOn(schedulerProvider.mainThread())
                           .delaySubscription(total, TimeUnit.MILLISECONDS)
                           .subscribeWith(return new DisposableSingleObserver<ServiceResponse>() {

                   @Override
                   public void onSuccess(ServiceResponse serviceResponse) {


                   }

                   @Override
                   public void onError(Throwable e) {

                   }
               });

标签: androidrx-java2

解决方案


在通话delaySubscription前移动。retryRxJava 运算符向上操作,因此您的延迟适用于重试的原始订阅,但不适用于错误情况下的附加订阅,因为重试只知道上游存在的内容。


推荐阅读