Junior — Middle
Como iniciar a execução de uma função suspend em Kotlin?
sobes.tech IA
Resposta da IA
Em Kotlin, funções suspend só podem ser chamadas de outra função suspend ou de uma coroutine. Para iniciar uma função suspend fora de um contexto suspendido, usa-se um scope de coroutine e funções de lançamento, como launch ou async da biblioteca kotlinx.coroutines.
Exemplo:
import kotlinx.coroutines.*
suspend fun fetchData() {
delay(1000) // simulação de uma operação longa
println("Dados recebidos")
}
fun main() {
runBlocking { // inicia uma coroutine e bloqueia a thread atual
fetchData() // chamada de função suspend dentro de um contexto suspendido
}
GlobalScope.launch { // inicia uma coroutine no scope global
fetchData()
}
Thread.sleep(2000) // para que o programa não termine antes
}
Portanto, para iniciar uma função suspend, deve-se estar dentro de uma função suspend ou lançar uma coroutine usando launch, async ou runBlocking.