android - 在 LivedataCouroutine Builder 中组合多个调用
问题描述
所以,现在我需要使用 viewModelScope 来在我的 livedata 协程构建器中执行异步等待操作,这工作正常,但我正在寻找一种更简洁的方法来执行所有这些获取的异步等待,而无需范围对视图模型的调用,有没有更好的方法?
fun initView() = liveData(Dispatchers.Main) {
emit(States.Loading())
kotlin.runCatching {
val call1 = viewModelScope.async { repo.call1() }
val call2 = viewModelScope.async { repo.call2() }
val call3 = viewModelScope.async { repo.call3() }
val call4 = viewModelScope.async { repo.call4() }
val call5 = viewModelScope.async { repo.call5() }
val call6 = viewModelScope.async { repo.call6() }
// We then get result data
val call1Result = call1.await()
val call2Result = call2.await()
val call3Result = call3.await()
val call4Result = call4.await()
val call5Result = call5.await()
val call6Result = call6.await()
MyDataClass(call1,call2,call3,call4,call5,call6)
}.onSuccess { myViewData ->
...
}.onFailure { throwable ->
...
}
}
在 liveData 协程块中是否有更好的方法来执行并行请求并让它们创建最后一个数据类结果?
解决方案
推荐阅读
- python - AttributeError:“张量”对象没有属性“_in_graph_mode”
- python - 如何用整行替换特定值Python
- python - 管理依赖 - 管道代码跨越多个文件
- android - 屏幕旋转时Listview不保存项目 - Android Studio
- javascript - 在 Edge 中,对超级方法调用 typeof 会返回“函数”,即使父类中不存在该方法
- java - JPA @repository @Query Can handle a null entity?
- javascript - 如何向 Odoo13 的 POS 订单添加数据
- plsql - 如何随时间保留 PL/SQL 日期参数
- python - 逐行附加 2 个 csv 文件时的内存问题
- c# - Unity3D - 构建失败,因为“[Unity] 错误:资产标记为 HideFlags.DontSave 但包含在构建中:”