надо сделать так, чтобы любой xhr запрос при 401й ошибке (неверный аксес токен) запускал процесс обновления токена, а после обновления оного были сделаны повторные реквесты.
Реально ли это организовать через интерцепторы в рамках одного стрима, ну или полностью перезапускать запрос?
Пробовал через интерцепторы и retryWhen это все организовать, получилось, конечно, отловить ошибку, сделать обновление аксес токена. Но вот заставить ретрай обождать получение нового токена, и прилепить уже обновленный токен в ретрае не получилось. :( Сорь, но кусок кода кинуть не могу, ибо нда и все дела, постарался поподробнее кейс описать.
Лучше сделай свою обертку над http client и там уже делай что хочешь (такой кейс мне кажется промисом даже проще реализовать, хотя не уверен на счет ретрая)
поборол сей кейс, через интерцептор, но БЕЗ retryWhen, может кому будет полезно, может кто захочет раскритиковать, мало ли: 1) в интерцепторе, который аттачит аксес токен (дефолтное решение, вроде было даже в примерах на сайте ангулярки) дополнительно повесил catchError 2) в случае если ошибка НЕ авторизационная, то ошибка пробрасывается дальше для обработки уже интерцептором общих ошибок 3) в случае, если ошибка авторизационная, запускается принудительный запрос токена, дожидаемся его и прокидываем в стрим, потом аттачим этот токен к старому реквесту, полученному еще в самом интерцепторе, и собсно этот уже новый реквест и возвращаем в поток
Обсуждают сегодня