Sobes.tech
Junior — Middle

Чӣ тавр функсияеро амалӣ кардан мумкин аст, ки ҳамзамон маълумотҳоро аз ду манбаи гуногун ба таври асинхрон бор мекунад?

sobes.tech AI

Ҷавоб аз 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"
}

Дар ин мисол, ду функсияи боргирӣ дар параллел оғоз мешаванд ва натиҷаҳо пас аз анҷом ёфтани онҳо коркард мешаванд.