【发布时间】:2018-06-29 22:37:37
【问题描述】:
我有一个 observable:Observable.create<Boolean> {emitter = it},我向其中推送了一些值。我希望它发布一个“假”值,只要某个特定时间段过去了,而没有任何值被推送到该发射器。
RxJava/Kotlin 2 怎么可能?
【问题讨论】:
标签: java kotlin rx-java2 rx-android rx-kotlin2
我有一个 observable:Observable.create<Boolean> {emitter = it},我向其中推送了一些值。我希望它发布一个“假”值,只要某个特定时间段过去了,而没有任何值被推送到该发射器。
RxJava/Kotlin 2 怎么可能?
【问题讨论】:
标签: java kotlin rx-java2 rx-android rx-kotlin2
您可以尝试组合 2 个函数:timeout 和 onErrorReturn。
Observable.create<Boolean> {
// use emitter here
}
.timeout(3, TimeUnit.SECONDS)
.onErrorReturn { if (it is TimeoutException) false else throw it }
.subscribe { println("onNext $it") }
澄清后更新了sn-p。 repeatWhen 将重新订阅 Observable。
Observable.create<Boolean> {
// use emitter here
}
.timeout(3, TimeUnit.SECONDS)
.onErrorReturn { if (it is TimeoutException) false else throw it }
.repeatWhen { it }
.subscribe { println("onNext $it") }
【讨论】: