微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

RxJava BehaviorSubject#onError(Throwable) 在 Kotlin Flow 中等效

如何解决RxJava BehaviorSubject#onError(Throwable) 在 Kotlin Flow 中等效

我正在一个项目中将一些 RxJava 代码转换为 Kotlin Flow。

我遇到了一段调用 BehaviorSubject#onError(Throwable)代码

我没有找到任何方法来使用 Flow 对象。

// RxJava
val behaviorSubject = BehaviorSubject.create<Int>()
behaviorSubject.onError(RuntimeException())

// Kotlin Flow
val mutableSharedFlow = MutableSharedFlow<Int>()
mutableSharedFlow.???

有什么办法吗?

解决方法

来自 docs:“SharedFlow 不能像 BroadcastChannel 一样关闭,并且永远不能代表失败。如果需要,所有错误和完成信号都应明确具体化。”

因此,您可能必须创建一个带有值和异常槽的数据类,然后使用 takeWhile 停止它。

(旁注:我碰巧有一个用于 kotlin 流程的 BehaviorSubject,它确实提供了一个 error channel。)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。