Junior — Middle
Ako súčasne spustiť dve sieťové požiadavky pomocou korutín a spojiť ich odpovede?
sobes.tech AI
Odpoveď od AI
Na súčasné spustenie dvoch sieťových požiadaviek pomocou korutín v Android, môžete použiť funkciu async vnútri korutiny a potom spojiť výsledky pomocou await. Príklad v 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 {
// implementácia prvého požiadavku
}
suspend fun networkRequest2(): Response2 {
// implementácia druhého požiadavku
}
Týmto spôsobom sú oba požiadavky spustené paralelne a výsledky sú spojené po ich dokončení.