【发布时间】:2018-12-21 22:52:51
【问题描述】:
我正在尝试在应用层中使用 Hibernate 和 Kotlin 协程加载多个实体。做这样的事情。
fun load() : SomeData {
val steps = someFunctionCallToGetSteps()
val stepCollection : List<Step> = MutableList()
runBlocking {
for (step in steps) {
val s = async { getStepData(step) }
payers.add(s.await())
}
}
}
private suspend fun getStepData(step : Int) : Iterable<Step> {
return someComputation()
}
但是这种方法不正确,因为我立即使用await,所以它本身不是异步的。我被告知要收集所有延期并使用awaitAll,但我在任何地方都找不到任何例子。这个可以吗?
【问题讨论】:
标签: hibernate kotlin kotlinx.coroutines