Junior — Middle
Wie kann man die Ausführung einer suspend-Funktion in Kotlin initiieren?
sobes.tech KI
Antwort von AI
In Kotlin können suspend-Funktionen nur aus einer anderen suspend-Funktion oder aus einer Coroutine aufgerufen werden. Um eine suspend-Funktion außerhalb eines suspend-Kontexts zu starten, verwendet man einen Coroutine-Scope und Startfunktionen wie launch oder async aus der kotlinx.coroutines-Bibliothek.
Beispiel:
import kotlinx.coroutines.*
suspend fun fetchData() {
delay(1000) // Simulation einer langen Operation
println("Daten empfangen")
}
fun main() {
runBlocking { // startet eine Coroutine und blockiert den aktuellen Thread
fetchData() // Aufruf einer suspend-Funktion innerhalb eines suspend-Kontexts
}
GlobalScope.launch { // startet eine Coroutine im globalen Scope
fetchData()
}
Thread.sleep(2000) // damit das Programm nicht vorher beendet wird
}
Daher muss man, um eine suspend-Funktion zu initiieren, sich entweder innerhalb einer suspend-Funktion befinden oder eine Coroutine mit launch, async oder runBlocking starten.