Sobes.tech
Junior — Middle

Kā var uzsākt suspend funkcijas izpildi Kotlin?

sobes.tech AI

Atbilde no AI

Kotlin suspend funkcijas var izsaukt tikai no citas suspend funkcijas vai no korutinas. Lai palaistu suspend funkciju ārpus suspend konteksta, izmanto korutīnas scope un startēšanas funkcijas, piemēram, launch vai async no kotlinx.coroutines bibliotēkas.

Piemērs:

import kotlinx.coroutines.*

suspend fun fetchData() {
    delay(1000) // ilgas operācijas imitācija
    println("Dati saņemti")
}

fun main() {
    runBlocking { // sāk korutinu un bloķē pašreizējo pavedienu
        fetchData() // suspend funkcijas izsaukums suspend kontekstā
    }

    GlobalScope.launch { // sāk korutinu globālajā scope
        fetchData()
    }
    Thread.sleep(2000) // lai programma nebeigtos agrāk
}

Tādēļ, lai uzsāktu suspend funkciju, jums jābūt suspend funkcijas iekšienē vai jāstartē korutina ar launch, async vai runBlocking.