如何在RXjava-Android中设置完整观察者的超时?

如何在RXjava-Android中设置完整观察者的超时?,android,timeout,rx-java2,Android,Timeout,Rx Java2,我在Observable中合并了许多请求,我需要一个超时不是针对每个发射,而是针对RXjava中的完全Observable。有可能吗 Observable .merge(listOfObservables).subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new DisposableO

我在Observable中合并了许多请求,我需要一个超时不是针对每个发射,而是针对RXjava中的完全Observable。有可能吗

            Observable
            .merge(listOfObservables).subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new DisposableObserver<Response>() {

                @Override
                public void onNext(@io.reactivex.annotations.NonNull Response response) {
                    
                }

                @Override
                public void onError(@io.reactivex.annotations.NonNull Throwable e) {
                  
                }

                @Override
                public void onComplete() {
                  
                }
            });
可观察
.merge(listOfObservables).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.认购(新的可处置观察员){
@凌驾
public void onNext(@io.reactivex.annotations.NonNull Response){
}
@凌驾
public void onError(@io.reactivex.annotations.NonNull Throwable e){
}
@凌驾
未完成的公共空间(){
}
});

您可以使用带有延迟
错误的
takeUntil

可观察
.merge(ListofObservable)
.subscribeOn(Schedulers.io())
.takeUntil(可观察到的.error(new TimeoutException()).delay(5,TimeUnit.MINUTES,true))
.observeOn(AndroidSchedulers.mainThread())

您能否进一步解释一下,它是如何工作的?它会中继您的项目序列,直到给定的其他序列发生为止,在这种情况下,
TimeoutException
的延迟错误信号发生。这将停止合并,并将调用您的
onError
。这意味着一个错误观测值开始与我的合并观测值并行运行,如果我的合并观测值未在5分钟内完成,takeUnitl将抛出错误并忽略剩余的观测值。是的,没错。感谢它的工作,我今天在RxJava中学习了一个新的逻辑