gpt4 book ai didi

kotlin - 暂停直到 StateFlow 达到所需状态之一并返回结果

转载 作者:行者123 更新时间:2023-12-02 02:08:23 26 4
gpt4 key购买 nike

考虑一个密封类状态。

sealed class State {
object Unknown : State()
object Loading : State()
object Success : State()
data class Failure(val exception: Exception)
}

我有一个状态流,消费者可以在其中主动收听状态更新。

val state:State = MutableStateFlow(State.Unknown)

现在,我还想有一个简单的挂起方法,等待状态达到成功或失败,这样只需要一次结果的消费者就不需要知道状态流了。

如何实现?

最佳答案

虽然您已经提出了一个可行的解决方案,但为了简单起见,您可能希望使用内置的 Flow.first { ... } 运算符。

suspend fun waitForResult(): State  {
val resultStates = setOf(State.Success::class, State.Failure::class)
return state.first { it::class in resultStates }
}

关于kotlin - 暂停直到 StateFlow 达到所需状态之一并返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68062248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com