Назад к вопросам
Junior — Middle
67
Как выполнить асинхронную функцию и получить её результат с помощью Coroutines?
Ответ от нейросети
sobes.tech AI
В Android для выполнения асинхронных операций с помощью корутин (Coroutines) используется библиотека Kotlin Coroutines. Чтобы вызвать асинхронную функцию и получить её результат, нужно:
- Определить функцию как
suspend. - Запустить корутину в подходящем контексте (например, в
viewModelScopeилиlifecycleScope). - Использовать
awaitили просто вызвать функцию внутри корутины, чтобы получить результат.
Пример:
import kotlinx.coroutines.*
// Асинхронная suspend-функция
suspend fun fetchData(): String {
delay(1000) // имитация долгой операции
return "Результат данных"
}
fun main() = runBlocking {
// Запуск корутины и получение результата
val result = fetchData()
println(result) // Выведет: Результат данных
}
В Android обычно используют lifecycleScope в Activity или Fragment:
lifecycleScope.launch {
val data = fetchData()
// обновить UI с полученными данными
}
Таким образом, корутины позволяют писать асинхронный код последовательно и удобно получать результаты.