Junior — Middle
Como iniciar duas solicitações de rede simultaneamente usando corrotinas e combinar suas respostas?
sobes.tech IA
Resposta da IA
Para executar duas solicitações de rede simultaneamente usando corrotinas no Android, pode usar a função async dentro de uma corrotina e depois combinar os resultados com await. Exemplo em 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 {
// implementação da primeira requisição
}
suspend fun networkRequest2(): Response2 {
// implementação da segunda requisição
}
Dessa forma, ambas as requisições são iniciadas em paralelo, e os resultados são combinados após sua conclusão.