I have been reading kotlin docs, and if I understood correctly the two Kotlin functions work as follows :
withContext(context)
When in doubt, remember this like a rule of thumb:
If multiple tasks have to happen in parallel and final result depends on completion of all of them, then use async.
async
For returning the result of a single task, use withContext.
withContext