Junior — Middle
Как едновременно да инициирате две мрежови заявки с помощта на корутини и да обедините техните отговори?
sobes.tech AI
Отговор от AI
За едновременно изпълнение на два мрежови заявки с помощта на корутини в Android, можете да използвате функцията async вътре в корутина и след това да обедините резултатите с await. Пример на 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 {
// реализация на първия заявка
}
suspend fun networkRequest2(): Response2 {
// реализация на втората заявка
}
По този начин, и двете заявки се стартират паралелно, а резултатите се обединяват след тяхното завършване.