Ответ
Для выполнения нескольких сетевых запросов параллельно и объединения результатов можно использовать CoroutineScope с async:
val scope = CoroutineScope(Dispatchers.IO)
val result1 = scope.async { api.getData1() }
val result2 = scope.async { api.getData2() }
val combinedResult = CombinedResult(
result1.await(),
result2.await()
)
Ключевые моменты:
- Запускаем запросы параллельно через
async await()дожидается завершения всех запросов- Объединяем результаты в один объект
- Используем
Dispatchers.IOдля сетевых операций
Альтернатива - Flow.combine() для реактивного подхода.