如果toBlockingFirst方法可靠吗?

时间:2018-04-25 13:40:31

标签: java android kotlin rx-java2

关于方法toBlockingFirst()的问题。

这是一种可靠的方法吗?即我能否InterruptedException崩溃

如果我打电话给一次性使用废弃物?

例如:

.flatMap{ host ->
    val count = userRepository.getUsers(PrefProvider.currentTourCode)
        .map { it.size }
        .blockingFirst()
    if (count>2) {
        callSomething()
    } else {
        callElse()
    } 
}

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:2)

如果flatMap在RxJava Scheduler上运行,则会调用blockingFirst时间,您可能会将InterruptedException包裹在RuntimeException中。但是,您不应该在处理程序中调用阻塞方法,而是通过flatMap

进行组合
.flatMap{ host ->
    userRepository.getUsers(PrefProvider.currentTourCode)
        .flatMap { 
            if (it.size) {
               return callSomething()
            }
            return callElse()
        }
 }

根据callSomethingcallElse应该做什么以及是否应该返回某些内容,您还可以map doOnNext代替flatMap那里。