Sobes.tech
Junior — Middle

Hogyan biztosítható egy adott kódrészlet végrehajtása több HTTP kérés válaszainak megérkezése után?

sobes.tech MI

Válasz az MI-től

iOS-ben, több HTTP-kérés befejezése után egy kódrészlet végrehajtásához hasznos a DispatchGroup használata. Ez lehetővé teszi egy aszinkron feladatcsoport nyomon követését, és a kód végrehajtását, amikor mindegyik befejeződik.

Swift példában:

let dispatchGroup = DispatchGroup()

var results: [Data] = []

for url in urls {
    dispatchGroup.enter()
    URLSession.shared.dataTask(with: url) { data, response, error in
        if let data = data {
            results.append(data)
        }
        dispatchGroup.leave()
    }.resume()
}

dispatchGroup.notify(queue: .main) {
    // Ez a blokk a kérések befejezése után fut le
    print("Minden kérés befejeződött")
}

Így a DispatchGroup segít több aszinkron művelet szinkronizálásában, és a kód végrehajtásában azok befejezése után.