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.