Junior — Middle
როგორ შეიძლება ერთდროულად ორი ქსელური მოთხოვნის ინიციირება კორუტინების გამოყენებით და მათი პასუხების გაერთიანება?
sobes.tech AI
პასუხი AI-სგან
Android-ში კორუტინების გამოყენებით ორი ქსელის მოთხოვნის ერთდროულად შესრულებისთვის, შეგიძლიათ გამოიყენოთ async ფუნქცია კორუტინში და შემდეგ შედეგები შეერთოთ await-ის საშუალებით. Kotlin-ის მაგალითი:
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 {
// პირველი მოთხოვნის განხორციელება
}
suspend fun networkRequest2(): Response2 {
// მეორე მოთხოვნის განხორციელება
}
ამ გზით, ორივე მოთხოვნა პარალელურად იწყება და შედეგები მათი დასრულების შემდეგ ერთიანდება.