Показать сообщение отдельно
  #8 (permalink)  
Старый 15.07.2022, 10:40
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,725

Тут есть одна трабла.
Допустим токен устарел
- Посылаем запрос1
- посылаем запрос2
- Приходит ответ на запрос1, что токен сдох
запускаем обновление
- Приходит ответ на запрос 2, что токен сдох
(и вот тут мы не должны запускать обновление! мы просто должны ждать, пока не придет новый токен) и потом повторять запрос 2 уже с ним)

Т.е в процедуре обновления выставляем флаг inRefresh = true. И снимаем его когда пришел токен.

А когда на запрос получаем ответ, что токен устарел, то проверяем этот флаг. Если установлен, значит его уже обновляют. И мы не запускаем обновление, а просто повторяем запрос - там уже есть ожидание обновления токена.
Ответить с цитированием