Назад к вопросам
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 помогает синхронизировать несколько асинхронных операций и выполнить код после их завершения.