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, async və await 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:
asyncDeferredqaytarır, bu, "əhdə