Sobes.tech
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.