我是 kotlin 和回應式編程的新手。我有一個對房間資料庫運行查詢的存盤庫。我想在將專案串列發送到視圖模型之前根據一些引數過濾專案串列。
我不知道我做錯了什么,但我認為這與不了解 Flow 相關。它給了我一個錯誤,我回傳一個單位而不是一個串列。
suspend fun getFilterList(flowList: Flow<List<Item>>): Flow<List<Item>>{
val filterList: MutableList<Item> = mutableListOf()
flowList.collectLatest { list ->
list.toList().forEach { item ->
if (item.owner1 != 100){
filterList.add(item)
}
}
}
return filterList.asFlow()
}
uj5u.com熱心網友回復:
回傳流的函式不需要掛起。我認為這應該滿足您的要求:
@OptIn(ExperimentalCoroutinesApi::class)
fun getFilterList(flowList: Flow<List<Item>>): Flow<List<Item>>{
return flowList.mapLatest { list ->
list.filter { it.owner1 != 100 }
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/455648.html
