Back to questions
Junior — Middle
74
Каким образом можно одновременно инициировать два сетевых запроса с использованием корутин и объединить их ответы?
Answer from AI
sobes.tech 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 {
// реализация второго запроса
}
Таким образом, оба запроса запускаются параллельно, а результаты объединяются после их завершения.