如何计算observable的执行时间

时间:2017-11-09 22:09:10

标签: kotlin rx-java rx-java2

我正在寻找衡量某项任务执行情况的解决方案

  1. 我想在某个地方启动计时器
  2. 我想执行一些任务
  3. 在代码的不同部分,我希望能够停止计时器,我得到执行最终执行时间结果
  4. 我想这可能与使用EventBus发布开始计算和停止的事件非常类似。

    所以我可以有一个功能:

    doSomething(){
    //start counting
    }
    

    在ohter函数中我想访问计数器并调用stop:

    otherFunctionWhichCanBeInvokedLater(){
    //stop counter and get the duration time
    }
    

    在Rx中有没有很好的方法来实现这个? 我想为此使用Kotlin和RxJava2。

1 个答案:

答案 0 :(得分:0)

如何使用doOnXXX挂钩,如下所示:

fun startTimer() {
    //start counting
}

fun stopTimer() {
    //stop counter and get the duration time
}

fun observe() {
    Observable.just(...)
            .doOnSubscribe { startTimer() }
            .doFinally { stopTimer() }
            .subscribeBy(...)
}

根据您的要求,您可以使用doOnFinally和/或doOnComplete的设置替换doOnError