Junior — Middle
Kaip užtikrinti tam tikro kodo bloko vykdymą po kelių HTTP užklausų atsakymų gavimo?
sobes.tech AI
Atsakymas iš AI
iOS, norint vykdyti kodo bloką po kelių HTTP užklausų pabaigos, patogu naudoti DispatchGroup. Jis leidžia stebėti asinchroninių užduočių grupę ir vykdyti kodą, kai jos visi baigiami.
Pavyzdys Swift kalba:
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) {
// Šis blokas bus vykdomas po visų užklausų pabaigos
print("Visi užklausos baigėsi")
}
Taip DispatchGroup padeda sinchronizuoti kelias asinchronines operacijas ir vykdyti kodą po jų pabaigos.