Junior — Middle
Hoe kun je gelijktijdig twee netwerkverzoeken starten met behulp van coroutines en hun antwoorden combineren?
sobes.tech AI
Antwoord van AI
Om twee netwerkverzoeken gelijktijdig uit te voeren met behulp van coroutines in Android, kun je de functie async binnen een coroutine gebruiken en vervolgens de resultaten combineren met await. Voorbeeld in 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 {
// implementatie van de eerste aanvraag
}
suspend fun networkRequest2(): Response2 {
// implementatie van de tweede aanvraag
}
Op deze manier worden beide verzoeken parallel gestart en worden de resultaten gecombineerd nadat ze zijn voltooid.