【发布时间】:2020-06-05 02:57:20
【问题描述】:
我有一个带有一组运算符的 rxjava 可观察链。假设我有源 Observable(总是每分钟发射一次)、执行网络请求的算子 B 和超时算子。我希望超时运算符只考虑运算符 B 发出的项目,但忽略源 Observable 发出的项目。我想要的是结束订阅,如果在一小时内,操作员 B 没有发出任何项目,例如服务器已关闭,并且没有结果发送给订阅者。
例子:
Observable.timer(1, TimeUnit.SECONDS)
.flatMap { performNetworkRequest() }
.timeout(1, TimeUnit.HOUR)
所以我的想法是在没有服务器响应的一小时后结束这个计时器。但是超时操作符不是这样工作的,因为它被重置一次,计时器 observable 每分钟发出一个新项目。
【问题讨论】:
标签: android timeout rx-java rx-java2