【问题标题】:Emit value if specific time has passed after last item如果在最后一项之后经过特定时间,则发出值
【发布时间】:2018-06-29 22:37:37
【问题描述】:

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

RxJava/Kotlin 2 怎么可能?

【问题讨论】:

    标签: java kotlin rx-java2 rx-android rx-kotlin2


    【解决方案1】:

    您可以尝试组合 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") }
    

    澄清后更新了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") }
    

    【讨论】:

    • 你能让超时不终止 observable 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 2013-06-15
    • 2021-08-23
    • 2018-03-14
    相关资源
    最近更新 更多