Sobes.tech
Junior — Middle

Comment peut-on initier simultanément deux requêtes réseau en utilisant des coroutines et combiner leurs réponses?

sobes.tech IA

Réponse de l'IA

Pour exécuter deux requêtes réseau simultanément en utilisant des coroutines dans Android, vous pouvez utiliser la fonction async à l'intérieur d'une coroutine, puis combiner les résultats avec await. Exemple en Kotlin :

import kotlinx.coroutines.*

suspend fun fetchData(): Pair<Response1, Response2> = coroutineScope {
    val deferred1 = async { networkRequest1() }
    val deferred2 = async { networkRequest2() }

    val result1 = deferred1.await()
    val result2 = deferred2.await()

    Pair(result1, result2)
}

suspend fun networkRequest1(): Response1 {
    // implémentation de la première requête
}

suspend fun networkRequest2(): Response2 {
    // implémentation de la deuxième requête
}

Ainsi, les deux requêtes sont lancées en parallèle, et les résultats sont combinés après leur achèvement.