Sobes.tech
Junior — Middle

¿Cómo se puede iniciar la ejecución de una función suspend en Kotlin?

sobes.tech AI

Respuesta de la IA

En Kotlin, las funciones suspend solo se pueden llamar desde otra función suspend o desde una coroutine. Para ejecutar una función suspend fuera de un contexto suspend, se utiliza un scope de coroutine y funciones de lanzamiento, como launch o async de la biblioteca kotlinx.coroutines.

Ejemplo:

import kotlinx.coroutines.*

suspend fun fetchData() {
    delay(1000) // simulación de una operación larga
    println("Datos recibidos")
}

fun main() {
    runBlocking { // inicia una coroutine y bloquea el hilo actual
        fetchData() // llamada a función suspend dentro de un contexto suspend
    }

    GlobalScope.launch { // inicia una coroutine en scope global
        fetchData()
    }
    Thread.sleep(2000) // para que el programa no termine antes
}

Por lo tanto, para iniciar una función suspend, debes estar dentro de una función suspend o lanzar una coroutine usando launch, async o runBlocking.