Ответ
В Kotlin можно задать тайм-аут для корутины с помощью функции withTimeout или withTimeoutOrNull:
// Выбросит TimeoutCancellationException при превышении тайм-аута
try {
withTimeout(3000) {
// Долгая операция
delay(4000)
}
} catch (e: TimeoutCancellationException) {
// Обработка тайм-аута
}
// Вернет null вместо исключения
val result = withTimeoutOrNull(3000) {
delay(4000)
"Result"
}
// result будет null
Ключевые моменты:
- Тайм-аут указывается в миллисекундах
withTimeoutбросает исключение при превышении времениwithTimeoutOrNullвозвращает null вместо исключения- Тайм-аут работает только внутри блока корутины