chirag
02/16/2018, 7:57 AMclass DataAccess(val id:String) {
private val fooAsync = async { fetchDataFromTableA(id) }
private val barAsync = async { fetchDataFromTableB(id) }
fun getData(): Data {
var foo =fooAsync.await()
var bar = barAsync.await()
return compute(foo,bar)
}
}
Just want to know ,Is it right way to do it ?Jonathan
02/16/2018, 8:09 AMclass DataAccess(val id:String) {
private val fooAsync = async(start = CoroutineStart.LAZY){ fetchDataFromTableA(id) }
private val barAsync = async(start = CoroutineStart.LAZY){ fetchDataFromTableB(id) }
suspend fun getData() {
barAsync.start()
val foo = fooAsync.await()
val bar = barAsync.await()
return compute(foo,bar)
}
}
chirag
02/16/2018, 8:46 AMJonathan
02/16/2018, 8:57 AMDataAccess
would trigger the data fetch. If you use it, the data fetch would be triggered at the first call of getData
which could be later.chirag
02/16/2018, 9:05 AMJonathan
02/16/2018, 9:08 AMfooAsync.start()
chirag
02/16/2018, 7:08 PM