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.