package keijumt.devandroid.viewmodel
import android.os.AsyncTask
import keijumt.devandroid.common.Task
import kotlinx.coroutines.experimental.async
import kotlinx.coroutines.experimental.launch
import javax.inject.Inject
class AsyncViewModel @Inject constructor() : BaseViewModel() {
fun async() {
val calc = Task(object : Task.Callback<Int> {
override fun execute(value: Int) {
println("callback is ${value}")
}
})
calc.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR)
}
fun coroutine() {
launch {
val result = calc(3).await() * calc(5).await()
println(result)
}
}
fun calc(num: Int) = async {
return@async num * num
}
fun rx() {
}
}