Junior — Middle
Korutinalar yordamida bir vaqtning o'zida ikkita tarmoq so'rovini qanday boshlash va ularning javoblarini qanday birlashtirish mumkin?
sobes.tech AI
AIdan javob
Androidda tarmoq so'rovlarini bir vaqtning o'zida ishga tushirish uchun korutinlar yordamida async funksiyasidan foydalanishingiz mumkin, so'ngra natijalarni await yordamida birlashtirasiz. Kotlin misoli:
import kotlinx.coroutines.*
suspend fun fetchData(): Pair<Response1, Response2> = coroutineScope {
val deferred1 = async { networkRequest1() }
val deferred2 = async { networkRequest2() }
val result1 = deferred1.await()
val result2 = deferred2.await()
Pair(result1, result2)
}
suspend fun networkRequest1(): Response1 {
// birinchi so'rovni amalga oshirish
}
suspend fun networkRequest2(): Response2 {
// ikkinchi so'rovni amalga oshirish
}
Shu tarzda, ikkala so'rov ham parallel ravishda boshlanadi va ularning natijalari ularning yakuniga erishgach, birlashtiriladi.