Вам необходимо реализовать обработчик завершения, посмотрите на эту статью .
Обработчик завершения - это код, который мы получаем, чтобы вызывать его, когда он приходитвернуться с этими предметами.Здесь мы можем работать с результатами вызова: проверка ошибок, локальное сохранение данных, обновление пользовательского интерфейса, что угодно.
typealias completionHandler = (JSON?) -> Void // this is your completion handler
public func getJSON(fileName: String, completionHandler: @escaping completionHandler) -> JSON?{
let url = "http://s3.eu-west-3.amazonaws.com" + fileName
if self.json == nil {
Alamofire.request(url)
.responseJSON { response in
if let result = response.result.value {
completionHandler(json) // this will fire up your completion handler,
}
}
}
else{
completionHandler(nil)
}
}
И вы можете использовать его следующим образом.
getJSON(fileName: "fileName") { (json) in
// this will fire up when completionhandler clousre in the function get triggered
//then you can use the result you passed whether its JSON or nil
guard let result = json else { return } // unwrap your result and use it
print(result)
}