Sobes.tech
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.