Junior — Middle
Wie kann man eine suspendierte Funktion innerhalb von synchronem Code aufrufen?
sobes.tech KI
Antwort von AI
Eine suspend-Funktion kann nicht direkt aus synchronem Code aufgerufen werden, da sie einen Coroutine-Kontext erfordert. Es ist jedoch möglich, eine Coroutine zu starten und das Ergebnis blockierend mit der Funktion runBlocking abzuwarten.
Beispiel:
import kotlinx.coroutines.*
fun main() {
val result = runBlocking {
suspendFunction()
}
println(result)
}
suspend fun suspendFunction(): String {
delay(1000)
return "Ergebnis"
}
runBlocking erstellt einen Coroutine-Scope und blockiert den aktuellen Thread bis zum Abschluss der Coroutine, was die Verwendung von suspend-Funktionen in synchronem Code ermöglicht.