Sobes.tech
Junior — Middle

Comment peut-on initier l'exécution d'une fonction suspend en Kotlin?

sobes.tech IA

Réponse de l'IA

En Kotlin, les fonctions suspend ne peuvent être appelées qu'à partir d'une autre fonction suspend ou d'une coroutine. Pour lancer une fonction suspend en dehors d'un contexte suspendu, on utilise un scope de coroutine et des fonctions de lancement comme launch ou async de la bibliothèque kotlinx.coroutines.

Exemple :

import kotlinx.coroutines.*

suspend fun fetchData() {
    delay(1000) // imitation d'une opération longue
    println("Données reçues")
}

fun main() {
    runBlocking { // lance une coroutine et bloque le thread actuel
        fetchData() // appel à une fonction suspend dans un contexte suspendu
    }

    GlobalScope.launch { // lance une coroutine dans un scope global
        fetchData()
    }
    Thread.sleep(2000) // pour que le programme ne se termine pas avant
}

Ainsi, pour initier une fonction suspend, il faut être dans une fonction suspend ou lancer une coroutine avec launch, async ou runBlocking.