Sobes.tech
Junior — Middle

Как може да се инициира изпълнението на suspend функция в Kotlin?

sobes.tech AI

Отговор от AI

В Kotlin, функциите suspend могат да бъдат извикани само от друга suspend функция или от корутина. За да стартирате suspend функция извън suspend контекст, използвайте coroutine scope и функции за стартиране като launch или async от библиотеката kotlinx.coroutines.

Пример:

import kotlinx.coroutines.*

suspend fun fetchData() {
    delay(1000) // имитация на дълга операция
    println("Данните са получени")
}

fun main() {
    runBlocking { // стартира корутина и блокира текущия поток
        fetchData() // извикване на suspend функция в suspend контекст
    }

    GlobalScope.launch { // стартира корутина в глобален scope
        fetchData()
    }
    Thread.sleep(2000) // за да не приключи програмата по-рано
}

Следователно, за иницииране на suspend функция трябва да сте в suspend функция или да стартирате корутина с launch, async или runBlocking.