Sobes.tech
Назад к вопросам
Junior — Middle
69

Как реализовать функцию, которая одновременно загружает данные из двух различных источников асинхронно?

Компании, где спрашивали
Ютека

Ответ от нейросети

sobes.tech AI

Для асинхронной загрузки данных из двух различных источников в Android можно использовать Kotlin Coroutines. Это позволит запускать две операции параллельно и дождаться их завершения.

Пример:

import kotlinx.coroutines.*

fun loadData() {
    CoroutineScope(Dispatchers.IO).launch {
        val deferred1 = async { loadFromSource1() }
        val deferred2 = async { loadFromSource2() }

        val result1 = deferred1.await()
        val result2 = deferred2.await()

        withContext(Dispatchers.Main) {
            // Обработка результатов на главном потоке
            println("Результат 1: $result1")
            println("Результат 2: $result2")
        }
    }
}

suspend fun loadFromSource1(): String {
    // Имитация загрузки данных
    delay(1000)
    return "Данные из источника 1"
}

suspend fun loadFromSource2(): String {
    // Имитация загрузки данных
    delay(1500)
    return "Данные из источника 2"
}

В этом примере две функции загрузки запускаются параллельно, а затем результаты обрабатываются после их завершения.