Junior — Middle
Wie implementiert man das Warten auf den Abschluss einer mit launch gestarteten Aufgabe in einer Coroutine?
sobes.tech KI
Antwort von AI
В Kotlin для ожидания завершения задачи, запущенной с помощью launch, нужно сохранить ссылку на объект Job, который возвращается функцией launch, и вызвать у него метод join(). Это приостановит текущую корутину до завершения запущенной задачи.
Пример:
val job = CoroutineScope(Dispatchers.Default).launch {
// Некоторая асинхронная работа
delay(1000L)
println("Задача завершена")
}
runBlocking {
job.join() // Ожидаем завершения задачи
println("Продолжаем после завершения")
}
Таким образом, join() позволяет синхронизировать выполнение и дождаться окончания корутины, запущенной через launch.