Sobes.tech
Junior — Middle

¿Cómo se pueden iniciar simultáneamente dos solicitudes de red usando corutinas y combinar sus respuestas?

sobes.tech AI

Respuesta de la IA

Para ejecutar dos solicitudes de red simultáneamente usando corutinas en Android, puedes usar la función async dentro de una corutina y luego combinar los resultados con await. Ejemplo 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 {
    // implementación de la primera solicitud
}

suspend fun networkRequest2(): Response2 {
    // implementación de la segunda solicitud
}

De esta manera, ambas solicitudes se ejecutan en paralelo y los resultados se combinan después de su finalización.