Middle
Android ilovalarini ishlab chiqishda ishlatiladigan dasturlash tilida async va await tuzilmalari qanday ishlaydi?
sobes.tech AI
AIdan javob
Kotlin'da, Android dasturlash uchun ishlatiladigan, async va await korutinlar kutubxonasidan funksiyalardir. Ular tilning kalit so'zlari emas, ba'zi boshqa tillarda bo'lgani kabi.
async yangi korutinani fon rejimida ishga tushiradi va Deferred turidagi ob'ektni qaytaradi, bu kelajakda bajariladigan natijani ifodalaydi. async chaqirgan korutina o'z ishini davom ettiradi, boshlagan asinxron operatsiyaning yakunlanishini kutmay.
await Deferred ob'ekti ustida chaqiriladigan suspending funksiyadir. U joriy korutinaning bajarilishini to'xtatadi, async yordamida boshlagan asinxron operatsiya yakunlangach va natija qaytarilgach. Agar natija allaqachon mavjud bo'lsa, await uni darhol qaytaradi.
Sintaksis:
import kotlinx.coroutines.*
suspend fun fetchUserData(): String {
// Uzun operatsiyaning simulyatsiyasi
delay(1000)
return "Foydalanuvchi ma'lumotlari"
}
suspend fun processData(data: String): String {
// Boshqa uzun operatsiyaning simulyatsiyasi
delay(2000)
return "Qayta ishlangan: $data"
}
suspend fun main() {
val deferredData = CoroutineScope(Dispatchers.IO).async {
// Asinxron ma'lumotlarni olish
fetchUserData()
}
// Ma'lumotlar yuklanayotganda boshqa ishlarni qilish mumkin
val data = deferredData.await() // fetchUserData() yakunlanishini kutamiz
val processedResult = withContext(Dispatchers.Default) {
// Ma'lumotlarni qayta ishlash, ehtimol boshqa ipda
processData(data)
}
println(processedResult) // "Qayta ishlangan: Foydalanuvchi ma'lumotlari" chiqaradi, kechikishlardan so'ng
}
Asosiy nuqtalar:
asyncDeferredqaytaradi, bu "va'da" natijadir.awaitchaqiruvchi korutinaning bajarilishini to'xtatadigan suspending funksiyadir.- Bu korutinlar kontekstida ishlatiladi, bloklamaydigan asinxron operatsiyalar uchun.
- Bir nechta asinxron vazifalarni parallel ravishda bajarishga va ularning natijalarini yig'ishga imkon beradi.