Sobes.tech
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.