Junior — Middle
Jak lze zavolat suspendovanou funkci v synchronním kódu?
sobes.tech AI
Odpověď od AI
Nelze přímo volat suspend funkci ze synchronního kódu, protože vyžaduje kontext coroutine. Nicméně je možné spustit coroutine a počkat na výsledek blokujícím způsobem pomocí funkce runBlocking.
Příklad:
import kotlinx.coroutines.*
fun main() {
val result = runBlocking {
suspendFunction()
}
println(result)
}
suspend fun suspendFunction(): String {
delay(1000)
return "Výsledek"
}
runBlocking vytváří scope coroutine a blokuje aktuální vlákno do doby dokončení coroutine, což umožňuje používat suspend funkce v synchronním kódu.