【发布时间】:2018-06-16 23:54:31
【问题描述】:
我有一个流:
val symbols: Single<List<Symbol>>
现在我想用 map() 将流转换为 UI 状态:
private fun cool(): Single<SymbolContract.State> =
symbols.map { SymbolContract.State.Symbols(it) }
我想做的是在上游symbols单上捕获一个错误,这样我就可以捕获任何错误然后返回SymbolContract.State.GeneralError()。
我想要onErrorMap() 之类的东西。不幸的是,将onErrorResumeItem 放在symbols 上不起作用,因为它需要返回List<Symbol>。
我可以想到一些丑陋的方法来做到这一点,但最干净的方法是什么?
【问题讨论】:
-
我猜你的意思是
onErrorReturnItem,因为onErrorResumeItem不存在。无论如何,它为什么会返回一个符号列表?onErrorReturnItem将返回SymbolContract.State。 -
它必须返回流返回的相同类型
-
我什么也没得到。如果你用 map 改变流,当前流必须返回一个
SymbolContract.State,这就是我用onErrorReturnItem指出的。至少,对于您发布的答案,它似乎对您有用,尽管显式类型不应该是必需的,因为 Kotlin 可以推断它。
标签: java kotlin rx-java rx-java2 reactivex