Junior — Middle
Jak zaimplementować oczekiwanie na zakończenie zadania uruchomionego za pomocą launch w coroutine?
sobes.tech AI
Odpowiedź od AI
В Kotlin для ожидания завершения задачи, запущенной с помощью launch, нужно сохранить ссылку на объект Job, который возвращается функцией launch, и вызвать у него метод join(). Это приостановит текущую корутину до завершения запущенной задачи.
Пример:
val job = CoroutineScope(Dispatchers.Default).launch {
// Некоторая асинхронная работа
delay(1000L)
println("Задача завершена")
}
runBlocking {
job.join() // Ожидаем завершения задачи
println("Продолжаем после завершения")
}
Таким образом, join() позволяет синхронизировать выполнение и дождаться окончания корутины, запущенной через launch.