1

与频道和广播频道类似,流是否也可以在多个地方实例化和重用?

创建流的一般用法是包装逻辑以在流的主体内发出数据并返回。

片段:

fun listenToDataChanges() : Flow<T>
{
return flow {
            dataSource.querySomeInfo()?.consumeEach { 
                data->
                if (someCondition) {
                    emit(data)
                }
            }
        }
}

每次调用 listenToDataChanges() 时,都会创建一个新的流实例并进行多个订阅。相反,是否可以创建和重用实例以避免多次订阅?

4

1 回答 1

0

是的,您只需将其存储在一个变量中,而不是每次都重新创建流顺便说一句,您似乎可以通过这种方式简化:

val customFlow = dataSource.querySomeInfo()?.filter { someCondition }
于 2020-07-01T13:56:00.050 回答