Junior — Middle
Ako volať suspendovanú funkciu v synchronickom kóde?
sobes.tech AI
Odpoveď od AI
Priamy volanie suspend funkcie zo synchronného kódu nie je možné, pretože vyžaduje kontext korutíny. Avšak, môžete spustiť korutínu a počkať na výsledok blokujúcim spôsobom pomocou funkcie runBlocking.
Príklad:
import kotlinx.coroutines.*
fun main() {
val result = runBlocking {
suspendFunction()
}
println(result)
}
suspend fun suspendFunction(): String {
delay(1000)
return "Výsledok"
}
runBlocking vytvára scope korutíny a blokuje aktuálne vlákno do ukončenia korutíny, čo umožňuje používanie suspend funkcií v synchronickom kóde.