Junior — Middle
Kako istovremeno pokrenuti dva mrežna zahteva koristeći korutine i spojiti njihove odgovore?
sobes.tech АИ
Одговор од АИ
Za istovremeno pokretanje dva mrežna zahteva koristeći korutine u Androidu, možete koristiti funkciju async unutar korutine, a zatim spojiti rezultate pomoću await. Primer na Kotlinu:
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 {
// implementacija prvog zahteva
}
suspend fun networkRequest2(): Response2 {
// implementacija drugog zahteva
}
Na ovaj način, oba zahteva se pokreću paralelno, a rezultati se kombinuju nakon njihovog završetka.