如果在最后一项之后经过特定时间,则发出值



我有一个可观察的:Observable.create<Boolean> {emitter = it},我把一些值推到它。我希望它发布一个"假"值,一旦某个特定的时间段过去了,没有任何值被推送到该发射器。

这在 RxJava/Kotlin 2 中是如何实现的?

您可以尝试组合 2 个函数:timeoutonErrorReturn

Observable.create<Boolean> { 
// use emitter here
}
.timeout(3, TimeUnit.SECONDS)
.onErrorReturn { if (it is TimeoutException) false else throw it } 
.subscribe { println("onNext $it") }

澄清后更新了代码段。repeatWhen将重新订阅可观察。

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") }

最新更新