首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从StateFlow创建SharedFlow

从StateFlow创建SharedFlow
EN

Stack Overflow用户
提问于 2022-01-11 19:32:42
回答 1查看 297关注 0票数 2

我有一个对象,希望从过滤的冷StateFlow中创建热SharedFlow对象。其意图是SharedFlow是数据更改的事件通道,但可以检索所有数据以获取当前状态。这意味着对于给定的字段,我可以找到当前状态,然后监视SharedFlow以获得状态更改。

我想提供一个API,以如下方式将SharedFlow转换为StateFlow:

代码语言:javascript
复制
var myVariable = DEFAULT_VALUE
val mySharedFlow = MutableSharedFlow<Int>()

val myStateFlow = mySharedFlow
                    .filter { it < 42 }
                    .asStateFlow(myVariable)// <- Convert to a StateFlow given a default value

这显然是一个过于简化的例子,但我的情况更复杂,目前我必须在字段更改时调用函数,但目前我执行以下操作:

代码语言:javascript
复制
myObj.onChange.collect(handler)
handler(myObj.getCurrentValue)

fun handler(data: Int) {
    // Handle data change
}

但是,我更喜欢使用并消除对第二个函数调用的需求。特别是因为这类代码的许多使用者都是小部分代码(大多数只是一个表达式),它们不需要在自己的函数上下文中,而应该只是简单的lambdas。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-12 16:49:50

Tenfour04 answered my question in his comment。我需要的函数称为stateIn()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70672434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档