gpt4 book ai didi

java - 如果在指定时间后没有发出任何项目,则超时

转载 作者:行者123 更新时间:2023-11-29 04:34:41 25 4
gpt4 key购买 nike

我有一个简单的操作,其中执行一个 api 调用,结果是一个 Observable,它发出响应:

apiService.getTeam()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<Response>() {
...
});

如果几秒钟后没有任何项目发出,我想向用户提供一些反馈。我知道 .timeout() 运算符,但是这将应用于每个项目,因此即使发出了一些项目,在发出最后一个可用项目几秒钟后超时也会导致一个错误。

我只想在没有任何项目发出时使操作超时。有没有简单的方法可以做到这一点?

最佳答案

有一个 timeout 重载,您可以使用它使第一个元素超时而不使其余元素超时:

Observable.never()
.timeout(() -> Observable.timer(1, TimeUnit.SECONDS), e -> Observable.never())
.toBlocking()
.subscribe(System.out::println, Throwable::printStackTrace);

这里,第二个参数简单地返回一个永远不会发射的 Observable,因此后续元素不会超时。

关于java - 如果在指定时间后没有发出任何项目,则超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42150045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com