0

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

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

我没有找到任何方法来处理Flow对象。

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

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

有什么办法吗?

4

1 回答 1

1

来自文档:“SharedFlow 不能像 BroadcastChannel 那样关闭,也不能代表失败。如果需要,所有错误和完成信号都应该显式具体化。”

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

(旁注:我碰巧有一个提供错误通道BehaviorSubject的for kotlin 流程。)

于 2021-06-03T13:17:10.870 回答