Sobes.tech
Junior — Middle

Ako možno inicializovať vykonávanie suspend funkcie v Kotlin?

sobes.tech AI

Odpoveď od AI

V Kotlinu je možné volať suspend funkcie iba z inej suspend funkcie alebo z korutiny. Na spustenie suspend funkcie mimo suspend kontextu sa používa coroutine scope a spúšťacie funkcie ako launch alebo async z knižnice kotlinx.coroutines.

Príklad:

import kotlinx.coroutines.*

suspend fun fetchData() {
    delay(1000) // simulácia dlhého procesu
    println("Dáta prijaté")
}

fun main() {
    runBlocking { // spustí korutinu a zablokuje aktuálny vlákno
        fetchData() // volanie suspend funkcie v suspend kontexte
    }

    GlobalScope.launch { // spustenie korutiny v globálnom scope
        fetchData()
    }
    Thread.sleep(2000) // aby program neskončil skôr
}

Preto je potrebné, aby ste boli v suspend funkcii alebo spustili korutinu pomocou launch, async alebo runBlocking.