【发布时间】:2022-01-22 07:03:08
【问题描述】:
我有两个任务。两者都将数据加载到视图模型(例如LoadDataList1UseCase 和LoadDataList2UseCase)。
当新的片段启动时,数据应该被加载到视图模型中。但是当任何加载过程完成时,它所获取的数据应该被加载到视图(回收器视图),但只有当两者都完成时,进度条才会被隐藏。
我想出一些类似下面但不起作用的方法。我想念什么?看起来如何正确的方法?
class LoadDataList1UseCase {
operator fun invoke() = flow {
delay(3_000)
emit("a")
}
}
class LoadDataList2UseCase {
operator fun invoke() = flow { emit("b")}
}
//------------ method in view model:
suspend fun loadData() = withContext(Dispatchers.IO) {
loadDataList1
.onEatch { /*update screan*/}
loadDataList2
.onEatch { /*update screan*/}
}
并在 runBlocking 中运行它
我是协程的新手。在 rx 中,我会尝试混合 combineLatest 和 doOnComplite
【问题讨论】:
标签: android kotlin kotlin-coroutines kotlin-flow