Junior — Middle
104
Comment organiser l'attente de la fin d'exécution des coroutines dans un programme asynchrone?
Entreprises à qui on a demandé
Réponse de l'IA
sobes.tech IA
Для ожидания окончания выполнения корутин в Kotlin обычно используют функцию join() у объекта Job, который возвращается при запуске корутины. Если корутина запущена через launch, то она возвращает Job, и вызов job.join() приостанавливает текущий поток до завершения корутины.
Пример:
val job = GlobalScope.launch {
// какая-то асинхронная работа
delay(1000)
println("Coroutine finished")
}
runBlocking {
job.join() // ждем завершения корутины
println("Coroutine has completed")
}
Если используется async, то для получения результата и ожидания окончания корутины применяется await().
val deferred = GlobalScope.async {
delay(1000)
return@async 42
}
runBlocking {
val result = deferred.await() // ждем и получаем результат
println("Result: $result")
}