RxJs Observables: запустить retryWhen после еще нескольких асинхронных запросов

Мой вариант использования:

Пользователь запрашивает актив из нашего API, который завершается неудачно из-за истечения срока действия JWT (передается как файл cookie httpOnly) - API возвращает код состояния 401.Мы идем и аутентифицируем их (без участия пользователя) снова, используя refresh_token, чтобы получить новый JWT с запросом от нашего клиента на auth0.Мы отправляем этот новый JWT в наш API, который будет установлен как файл cookie httpOnly, чтобы заменить устаревший.Затем мы хотим повторить первоначальный запрос, сделанный пользователем к API на шаге 1.

Я пытаюсь использовать Observables в моем приложении Redux сперевождь-наблюдаемым, Если вы можете придумать другой способ заставить вышеупомянутый пользовательский поток работать, я был бы рад услышать, как это сделать.

NB. Я используюrxjs V5

export const fetchAssetListEpic = (action$, store) => {
  return action$.ofType('FETCH_ASSET_LIST')
  .switchMap( action => {
    const options = {
      crossDomain: true,
      withCredentials: true,
      url: uriGenerator('assetList', action.payload)
    };
    return ajax(options);
  })
  .map(fetchAssetListSuccess)
  .retryWhen(handleError)
  .catch(redirectToSignIn);
};

function handleError(err) {
  return (err.status === 401) ? 
  /* Authenticate here [Step 2] */
  /* Send new JWT to API [Step 3] */
  /* If successful make original request again [Step 4] */
  :
  Observable.throw(err);
}
  
function redirectToSignIn() {
  /*I will redirect here*/
}

Пока я могу выполнить шаги 1, 2 и 3, но не уверен, что смогу добавить шаг 4. Я могу быть совершенно не в порядке, но любая помощь будет отличной!

Ответы на вопрос(1)

Ваш ответ на вопрос