与频道和广播频道类似,流是否也可以在多个位置实例化和重用?
创建流的一般用途是包装逻辑,以在流的主体内发出数据并返回。
代码段:
fun listenToDataChanges() : Flow<T>
{
return flow {
dataSource.querySomeInfo()?.consumeEach {
data->
if (someCondition) {
emit(data)
}
}
}
}
每次调用listenToDataChanges((时,都会创建一个新的流实例,并进行多个订阅。相反,是否可以创建并重用实例以避免多个订阅?
是的,您只需要将其存储在一个变量中,而不是每次都重新创建流顺便说一下,你似乎可以简化这种方式:
val customFlow = dataSource.querySomeInfo()?.filter { someCondition }