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.