Sobes.tech
Junior — Middle

Kā izsaukt suspend funkciju sinhronā kodā?

sobes.tech AI

Atbilde no AI

Tieši izsaukt suspend funkciju no sinhrona koda nav iespējams, jo tā prasa korutīnas kontekstu. Tomēr var uzsākt korutīnu un gaidīt rezultātu bloķējošā veidā, izmantojot funkciju runBlocking.

Piemērs:

import kotlinx.coroutines.*

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

suspend fun suspendFunction(): String {
    delay(1000)
    return "Rezultāts"
}

runBlocking izveido korutīnas apgabalu un bloķē pašreizējo pavedienu līdz korutīnas pabeigšanai, ļaujot izmantot suspend funkcijas sinhronā kodā.