Я использую Moya для обработки HTTP-операций, и обычно у меня есть refreshToken()
. Я проверяю токен, если истек, или нет, когда возникает запрос, но проблема в том, что могут быть сценарии, которые запрашивают более одного запроса. Если они связаны цепями с вложенными типами, это не проблема, но это вряд ли все время.Сделать все конечные точки подождать одну точную конечную точку
Чтобы быть более ясным, позволяет сказать, что у меня есть request1()
и request2()
и предположим, что они выполняют отдельные операции и могут быть вызваны в любое время (например, один называется в viewDidLoad()
, другой называется в другом viewDidLoad()
). когда это произойдет, и если токен истек, мой запрос обновления не выполняется. (statusCode: 400)
Итак, мой вопрос: как я могу заставить провайдера ждать refresh()
операция выполняется? Я имею в виду, что провайдер - это другие конечные точки. Я хочу, чтобы они подождали refresh()
конечной точки, если он включен.
Буду очень признателен, если вы предложите способ, который облегчит это.
Каждый раз, когда вы вызываете запрос, вы хотите проверить, не истечет ли токен обновления. Если это так, вы получаете токен обновления через службу и затем делаете запрос. Чтобы быть уверенным, это именно то, что вы ищете правильно? Если это так, мы можем сделать это с помощью закрытий и глобального (bool) значения для токена обновления. – KrishnaCA
. Я уже проверяю, истек ли токен обновления или нет, перед каждым запросом. Но поскольку мой менеджер сетевых операций является асинхронным, иногда через два раза выполняется два разных запроса, и они отдельно делают запрос на обновление токена. В результате я получаю 400 от второго. Я просто ищу решение для этого. – Faruk