Back to questions
Junior — Middle
63
Какими способами можно определить, что выполнение корутины завершено?
Answer from AI
sobes.tech AI
Определить, что корутина завершила выполнение, можно несколькими способами:
- Использование Job — корутина возвращает объект Job, у которого есть свойство
isCompleted. Если оно равноtrue, значит корутина завершена.
val job = launch {
// код корутины
}
// Проверка
if (job.isCompleted) {
println("Корутина завершена")
}
-
Использование
join()— можно вызватьjob.join(), чтобы приостановить текущий поток до завершения корутины. -
Использование
invokeOnCompletion— можно зарегистрировать обработчик, который вызовется при завершении корутины.
job.invokeOnCompletion { throwable ->
if (throwable == null) {
println("Корутина успешно завершена")
} else {
println("Корутина завершилась с ошибкой: $throwable")
}
}
- Для функций с
async— можно получить результат черезawait(), который завершится, когда корутина выполнится.