如何将协程 Flow<List<T>> 转换为 List<T>
How to convert coroutines Flow<List<T>> to List<T>
如何将 kotlinx.coroutines.flow 列表转换为普通数据 class 列表。
由于要从嵌套列表流转为单个列表,因此需要平面映射操作:
suspend fun <T> Flow<List<T>>.flattenToList() =
flatMapConcat { it.asFlow() }.toList()
用法示例:
suspend fun main() {
val flowOfLists: Flow<List<Int>> = flowOf(listOf(1, 2), listOf(3, 4))
val flatList: List<Int> = flowOfLists.flattenToList()
println(flatList)
}
如何将 kotlinx.coroutines.flow 列表转换为普通数据 class 列表。
由于要从嵌套列表流转为单个列表,因此需要平面映射操作:
suspend fun <T> Flow<List<T>>.flattenToList() =
flatMapConcat { it.asFlow() }.toList()
用法示例:
suspend fun main() {
val flowOfLists: Flow<List<Int>> = flowOf(listOf(1, 2), listOf(3, 4))
val flatList: List<Int> = flowOfLists.flattenToList()
println(flatList)
}