1

我有一个 observable: Observable.create<Boolean> {emitter = it},我向其推送一些值。我希望它发布一个“假”值,只要某个特定时间段过去,而没有任何值被推送到该发射器。

RxJava/Kotlin 2 怎么可能?

4

1 回答 1

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。

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") }
于 2018-06-29T23:08:28.427 回答