Sobes.tech
Junior — Middle

Hoe kun je de uitvoering van een suspend-functie in Kotlin initiëren?

sobes.tech AI

Antwoord van AI

In Kotlin kunnen suspend-functies alleen worden aangeroepen vanuit een andere suspend-functie of vanuit een coroutine. Om een suspend-functie buiten een suspend-context te starten, gebruik je een coroutine scope en opstartfuncties zoals launch of async uit de kotlinx.coroutines-bibliotheek.

Voorbeeld:

import kotlinx.coroutines.*

suspend fun fetchData() {
    delay(1000) // simulatie van een lange operatie
    println("Gegevens ontvangen")
}

fun main() {
    runBlocking { // start een coroutine en blokkeert de huidige thread
        fetchData() // aanroep van suspend-functie binnen suspend-context
    }

    GlobalScope.launch { // start een coroutine in de globale scope
        fetchData()
    }
    Thread.sleep(2000) // zodat het programma niet eerder eindigt
}

Dus, om een suspend-functie te initiëren, moet je binnen een suspend-functie zijn of een coroutine starten met launch, async of runBlocking.