Sobes.tech
Middle

Android tətbiqlərinin hazırlanmasında istifadə olunan proqramlaşdırma dilində async və await quruluşları necə işləyir?

sobes.tech Süni İntellekt

AI-dan cavab

Kotlin-də, Android inkişafı üçün istifadə olunan, asyncawait korutin kitabxanasından funksiyalardır. Onlar dilin açar sözləri deyildir, bəzi digər dillərdə olduğu kimi.

async yeni bir korutini fon rejimində işə salır və Deferred tipində obyekt qaytarır, bu, gələcəkdə icra nəticəsini təmsil edir. async-i çağıran korutina öz işinə davam edir, başlanmış asinxron əməliyyatın tamamlanmasını gözləmir.

await Deferred obyektində çağırılan suspending funksiyadır. Bu, cari korutinanın icrasını dayandırır, async ilə başlatılmış asinxron əməliyyat tamamlandıqda və nəticə qaytarıldıqda. Əgər nəticə artıq mövcuddursa, await onu dərhal qaytarır.

Sintaksis:

import kotlinx.coroutines.*

suspend fun fetchUserData(): String {
    // Uzun əməliyyatın simulyasiyası
    delay(1000)
    return "İstifadəçi məlumatları"
}

suspend fun processData(data: String): String {
    // Başqa uzun əməliyyatın simulyasiyası
    delay(2000)
    return "Emal edildi: $data"
}

suspend fun main() {
    val deferredData = CoroutineScope(Dispatchers.IO).async {
        // Asinxron məlumat əldə et
        fetchUserData()
    }

    // Məlumatlar yüklənərkən başqa işlər görə bilərik

    val data = deferredData.await() // fetchUserData()-nin tamamlanmasını gözləyir

    val processedResult = withContext(Dispatchers.Default) {
        // Məlumatları emal et, ehtimal ki, başqa bir ipdə
        processData(data)
    }

    println(processedResult) // "Emal edildi: İstifadəçi məlumatları" göstərəcək, gecikmələrdən sonra
}

Əsas nöqtələr:

  • async Deferred qaytarır, bu, "əhdə