Как добавить обработчики завершения в POST-запрос Alamofire с различными параметрами
Мне нужно сделать запрос POST к моему API авторизации для получения веб-токена Java при входе пользователей в систему, но поскольку запрос Alamofire является асинхронным, я не знаю, как реализовать обработчики завершения или обещания в swift.
Я сделал функцию, которая вызывается каждый раз, когда пользователи отправляют свои учетные данные, у нее есть 3 параметра (версия (pro, lite), электронная почта, пароль), и она.posts в API и получает JSON с токеном, затем я получаю эти данные токена с SwiftyJSON и сохранением его в виде строки моя проблема в том, что я не совсем понимаю, как работают обработчики или обещания завершения, поэтому мои данные теряются, потому что Alamofire работает асинхронно и функция возвращает пустое значение, хранящееся в маркере var до JSON извлекается, анализируется и сохраняется в нем, возвращая при этом всегда пустую строку.
Вот код моей функции:
public func AlamoToken(version: Bool, username: String, password:
String)-> String
{
var token = String()
let apiRouteSelection = DefineVersion(version: version)
let parameters: Parameters =
["Email": username,
"Password": password]
Alamofire.request(apiRouteSelection, method: .post, parameters: parameters).responseJSON { response in
let json = JSON(response.result.value as Any)
print ((json)) //Here i successfully get the JSON doc
token = json["token"].string!
print (("The token is: ", token)) //it prints token as expected
}
print((token)) //prints ""
return token
}
Я думаю, что мне нужно реализовать обещания или обработчики завершения, но все, что я пробовал, не работает, у меня также есть PromiseKit, так что это тоже может работать, но я не знаю как:(
РЕДАКТИРОВАТЬ: Как я уже сказал в моем ответе, это не дублируется, другой вопрос даже не использует AlamoFire или PromiseKit, пожалуйста, повторите.