Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何延迟RxJava订阅的成功和错误?_Android_Rx Java2 - Fatal编程技术网

Android 如何延迟RxJava订阅的成功和错误?

Android 如何延迟RxJava订阅的成功和错误?,android,rx-java2,Android,Rx Java2,无论错误或成功,我都希望在XXXX时间之前延迟发送订阅。对于以下代码,延迟仅适用于成功场景。请帮助我,这样它就可以一直等待XXXX时间 serviceRepository.getService() .retry(0) .map(value -> { total = XXXX;

无论错误或成功,我都希望在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) {

                   }
               });

在重试调用之前移动延迟订阅。RxJava操作符向上运行,因此您的延迟适用于重试的原始订阅,但在错误情况下不适用于附加订阅,因为重试只知道上游存在什么。

按时间延迟订阅本身永远不会失败。我不知道你想在这里实现什么。此外,retry0将永远不会重试。如果出现异常,则不会触发map的回调。Anatolii如果我想延迟成功和错误,有什么替代方案。XXXX是动态的,所以我需要一些与MAP等效的东西。谢谢你的回复。但是注意到map不会被错误调用,但我想调用map,因为I XXX是动态的,我根据网络调用所花费的时间来计算。如果网络调用所花费的时间更长,则XXXX的值将更短