Sobes.tech
Junior — Middle

Como pode chamar uma função suspensa dentro de código síncrono?

sobes.tech IA

Resposta da IA

Não é possível chamar diretamente uma função suspensa a partir de código síncrono, pois ela requer um contexto de coroutine. No entanto, pode-se iniciar uma coroutine e aguardar o resultado de forma bloqueante usando a função runBlocking.

Exemplo:

import kotlinx.coroutines.*

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

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

runBlocking cria um escopo de coroutine e bloqueia a thread atual até que a coroutine termine, permitindo usar funções suspensas em código síncrono.