Junior — Middle
Wie kann man mit Koroutinen gleichzeitig zwei Netzwerk-Anfragen starten und ihre Antworten kombinieren?
sobes.tech KI
Antwort von AI
Um zwei Netzwerkanfragen gleichzeitig mit Coroutinen in Android auszuführen, kannst du die Funktion async innerhalb einer Coroutine verwenden und dann die Ergebnisse mit await zusammenführen. Beispiel 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 {
// Implementierung der ersten Anfrage
}
suspend fun networkRequest2(): Response2 {
// Implementierung der zweiten Anfrage
}
Auf diese Weise werden beide Anfragen parallel gestartet, und die Ergebnisse werden nach deren Abschluss zusammengeführt.