Sobes.tech
Junior — Middle

Cum se pot iniția simultan două solicitări de rețea folosind corutine și cum se pot combina răspunsurile lor?

sobes.tech AI

Răspuns de la AI

Pentru a executa simultan două solicitări de rețea folosind corutine în Android, poți folosi funcția async în interiorul unei corutine și apoi combina rezultatele cu await. Exemplu în 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 {
    // implementarea primei solicitări
}

suspend fun networkRequest2(): Response2 {
    // implementarea celei de-a doua solicitări
}

Astfel, ambele solicitări sunt inițiate în paralel, iar rezultatele sunt combinate după finalizarea lor.