Sobes.tech
Назад к вопросам
Junior — Middle
71

Каким образом можно инициировать выполнение suspend функции в Kotlin?

Компании, где спрашивали
ИннотехИннотех

Ответ от нейросети

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.