Как добавить обработчики завершения в 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, пожалуйста, повторите.

0 ответов

Другие вопросы по тегам