Sobes.tech
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 {
    // მეორე მოთხოვნის განხორციელება
}

ამ გზით, ორივე მოთხოვნა პარალელურად იწყება და შედეგები მათი დასრულების შემდეგ ერთიანდება.