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.