Sobes.tech
Junior — Middle

Jak lze inicializovat provádění suspend funkce v Kotlinu?

sobes.tech AI

Odpověď od AI

V Kotlinu lze volat funkce suspend pouze z jiné funkce suspend nebo z korutiny. Pro spuštění funkce suspend mimo suspend kontext se používá coroutine scope a spouštěcí funkce, například launch nebo async z knihovny kotlinx.coroutines.

Příklad:

import kotlinx.coroutines.*

suspend fun fetchData() {
    delay(1000) // simulace dlouhé operace
    println("Data přijata")
}

fun main() {
    runBlocking { // spustí korutinu a zablokuje aktuální vlákno
        fetchData() // volání suspend funkce v suspend kontextu
    }

    GlobalScope.launch { // spuštění korutiny v globálním scope
        fetchData()
    }
    Thread.sleep(2000) // aby program neskončil dříve
}

Proto je třeba, abyste byli uvnitř suspend funkce nebo spustili korutinu pomocí launch, async nebo runBlocking.