Sobes.tech
Назад к вопросам
Junior — Middle
68

Каким образом можно обеспечить выполнение определенного блока кода после получения ответов от нескольких HTTP-запросов?

Компании, где спрашивали
Финам

Ответ от нейросети

sobes.tech AI

В iOS для выполнения блока кода после завершения нескольких HTTP-запросов удобно использовать DispatchGroup. Он позволяет отслеживать группу асинхронных задач и выполнить код, когда все они завершатся.

Пример на Swift:

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) {
    // Этот блок выполнится после завершения всех запросов
    print("Все запросы завершены, обработка результатов")
}

Таким образом, DispatchGroup помогает синхронизировать несколько асинхронных операций и выполнить код после их завершения.