Sobes.tech
Back to questions
Junior — Middle
72

Как реализовать ожидание завершения задачи, запущенной с помощью launch в корутине?

Companies where asked
Uzum
X5 DigitalX5 Digital

Answer from AI

sobes.tech AI

В Kotlin для ожидания завершения задачи, запущенной с помощью launch, нужно сохранить ссылку на объект Job, который возвращается функцией launch, и вызвать у него метод join(). Это приостановит текущую корутину до завершения запущенной задачи.

Пример:

val job = CoroutineScope(Dispatchers.Default).launch {
    // Некоторая асинхронная работа
    delay(1000L)
    println("Задача завершена")
}

runBlocking {
    job.join() // Ожидаем завершения задачи
    println("Продолжаем после завершения")
}

Таким образом, join() позволяет синхронизировать выполнение и дождаться окончания корутины, запущенной через launch.