Back to questions
Иннотех
Junior — Middle
70
Каким образом можно инициировать выполнение suspend функции в Kotlin?
Companies where asked
Answer from AI
sobes.tech AI
В Kotlin suspend-функции можно вызвать только из другой suspend-функции или из корутины. Для запуска suspend-функции вне suspend-контекста используют корутинный скоуп и функции запуска, например, launch или async из библиотеки kotlinx.coroutines.
Пример:
import kotlinx.coroutines.*
suspend fun fetchData() {
delay(1000) // имитация долгой операции
println("Данные получены")
}
fun main() {
runBlocking { // запускает корутину и блокирует текущий поток
fetchData() // вызов suspend-функции внутри suspend-контекста
}
GlobalScope.launch { // запуск корутины в глобальном скоупе
fetchData()
}
Thread.sleep(2000) // чтобы программа не завершилась раньше
}
Таким образом, для инициации suspend-функции нужно либо находиться внутри suspend-функции, либо запустить корутину с помощью launch, async или runBlocking.