Sobes.tech
Назад к вопросам
Junior — Middle
73

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

Компании, где спрашивали
Uzum
X5 DigitalX5 Digital

Ответ от нейросети

sobes.tech AI

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

Пример:

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

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

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