Sobes.tech
Junior — Middle

Come si può chiamare una funzione sospesa all'interno di codice sincrono?

sobes.tech AI

Risposta dell'AI

Non è possibile chiamare direttamente una funzione sospesa da codice sincrono, poiché richiede un contesto di coroutine. Tuttavia, è possibile avviare una coroutine e attendere il risultato in modo bloccante usando la funzione runBlocking.

Esempio:

import kotlinx.coroutines.*

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

suspend fun suspendFunction(): String {
    delay(1000)
    return "Risultato"
}

runBlocking crea un scope di coroutine e blocca il thread corrente fino al completamento della coroutine, permettendo di usare funzioni suspend in codice sincrono.