Sobes.tech
Junior — Middle

Hogyan lehet egy suspendált függvényt hívni szinkron kódon belül?

sobes.tech MI

Válasz az MI-től

Nem lehet közvetlenül hívni egy suspend függvényt szinkron kódból, mivel az coroutine kontextust igényel. Azonban elindíthat egy coroutine-t, és blokkoló módon várhat az eredményre a runBlocking függvény segítségével.

Példa:

import kotlinx.coroutines.*

fun main() {
    val result = runBlocking {
        suspendFunction()
    }
    println(result)
}

suspend fun suspendFunction(): String {
    delay(1000)
    return "Eredmény"
}

A runBlocking létrehoz egy coroutine scope-ot és blokkolja a jelenlegi szálat, amíg a coroutine be nem fejeződik, lehetővé téve suspend függvények használatát szinkron kódban.