Вы можете определить с помощью обработчика Завершение, когда задача завершена, как это.
func getAPIData(complition:@escaping (AnyObject?, Error?) -> Void) {
let initial = URL(string: "http://10.0.0.2/Blower/app/api/inicial.php")
DispatchQueue.main.async {
_ = URLSession.shared.dataTask(with: initial!) { (dados, requisicao, erro) in
if requisicao != nil {}
if let dados = dados {
do {
let json = try JSONSerialization.jsonObject(with: dados, options: []) as! [String: Any]
complition(json as AnyObject, nil) // When Complete task
// Call next function Here
} catch {
print(erro as Any)
complition(nil, erro)
}
} else {
complition(nil, erro)
}
}.resume()
}
}
Вызов как этот
self.getAPIData { (response,error) in
print(response) // Your response is here after complete task
}