Ответ
При вызове await у отмененной корутины, запущенной через async, будет выброшено исключение CancellationException. Это происходит потому, что отмена корутины прерывает её выполнение и завершает с исключением.
Пример:
val deferred = CoroutineScope(Dispatchers.IO).async {
delay(1000)
"Result"
}
deferred.cancel()
try {
deferred.await() // Выбросит CancellationException
} catch (e: CancellationException) {
println("Coroutine was cancelled")
}
Если корутина уже завершилась до отмены, await() вернёт её результат.