关于方法toBlockingFirst()
的问题。
这是一种可靠的方法吗?即我能否InterruptedException
崩溃
如果我打电话给一次性使用废弃物?
例如:
.flatMap{ host ->
val count = userRepository.getUsers(PrefProvider.currentTourCode)
.map { it.size }
.blockingFirst()
if (count>2) {
callSomething()
} else {
callElse()
}
}
有人可以解释一下吗?
答案 0 :(得分:2)
如果flatMap
在RxJava Scheduler
上运行,则会调用blockingFirst
时间,您可能会将InterruptedException
包裹在RuntimeException
中。但是,您不应该在处理程序中调用阻塞方法,而是通过flatMap
.flatMap{ host ->
userRepository.getUsers(PrefProvider.currentTourCode)
.flatMap {
if (it.size) {
return callSomething()
}
return callElse()
}
}
根据callSomething
和callElse
应该做什么以及是否应该返回某些内容,您还可以map
doOnNext
代替flatMap
那里。