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