Kotlin 使用类似于RxJava中的“PublishSubject.onError”的共享流向下游传播异常

Kotlin 使用类似于RxJava中的“PublishSubject.onError”的共享流向下游传播异常,kotlin,kotlin-coroutines,kotlin-flow,Kotlin,Kotlin Coroutines,Kotlin Flow,在kotlinSharedFlow中,我们可以发出某些值,因此我声明: private val _state: MutableSharedFlow<State> = MutableSharedFlow() val state = _state.asSharedFlow() 但这看起来更像是退后一步 另一个选择是忘记抛出异常和传递错误代码,但为了与我的应用程序的其他部分保持一致,我想在这个流中传播错误 使用SharedFlow实现RxJavaonError的等效功能的正确方法是什么

在kotlin
SharedFlow
中,我们可以发出某些值,因此我声明:

private val _state: MutableSharedFlow<State> =  MutableSharedFlow()
val state = _state.asSharedFlow()
但这看起来更像是退后一步

另一个选择是忘记抛出异常和传递错误代码,但为了与我的应用程序的其他部分保持一致,我想在这个流中传播错误

使用
SharedFlow
实现RxJava
onError
的等效功能的正确方法是什么

state.map {
    when (it) {
        is Success -> it.value
        is Error -> throw it.exception
    }             
}