Junior — Middle
Hogyan valósítható meg a launch segítségével indított feladat befejezésének várakozása egy coroutine-ban?
sobes.tech MI
Válasz az MI-től
В Kotlin для ожидания завершения задачи, запущенной с помощью launch, нужно сохранить ссылку на объект Job, который возвращается функцией launch, и вызвать у него метод join(). Это приостановит текущую корутину до завершения запущенной задачи.
Пример:
val job = CoroutineScope(Dispatchers.Default).launch {
// Некоторая асинхронная работа
delay(1000L)
println("Задача завершена")
}
runBlocking {
job.join() // Ожидаем завершения задачи
println("Продолжаем после завершения")
}
Таким образом, join() позволяет синхронизировать выполнение и дождаться окончания корутины, запущенной через launch.