Sobes.tech
Junior — Middle

Kako osigurati izvršenje određenog bloka koda nakon što stignu odgovori od više HTTP zahteva?

sobes.tech АИ

Одговор од АИ

U iOS-u, za izvršenje bloka koda nakon završetka više HTTP zahteva, korisno je koristiti DispatchGroup. Omogućava praćenje grupe asinhronih zadataka i izvršavanje koda kada svi oni završe.

Primer u Swift-u:

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) {
    // Ovaj blok će se izvršiti nakon završetka svih zahteva
    print("Svi zahtevi su završeni")
}

Na ovaj način, DispatchGroup pomaže u sinhronizaciji više asinhronih operacija i izvršavanju koda nakon njihovog završetka.