RxJs Observables: execute retryWhen depois de mais algumas solicitações assíncronas

Meu caso de uso é:

O usuário solicita ativos de nossa API que falham devido à expiração do JWT (transmitido como um cookie httpOnly) - a API retorna um código de status 401.Nós os autenticamos (sem que o usuário faça nada) novamente usando um refresh_token para recuperar um novo JWT com uma solicitação do nosso cliente para auth0.Enviamos esse novo JWT para nossa API para ser definido como um cookie httpOnly para substituir o expirado.Em seguida, queremos tentar novamente a solicitação original que o usuário fez na API na etapa 1.

Estou tentando usar o Observables no meu aplicativo Redux comobservável em redux. Se você puder pensar em outra maneira de fazer o fluxo do usuário acima funcionar, ficarei feliz em saber como.

NB. Estou a usarrxjs 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*/
}

Até agora, consegui concluir as etapas 1, 2 e 3, mas não tenho muita certeza de como adicionar a etapa 4. Posso estar completamente enganado, mas qualquer ajuda seria ótima!

questionAnswers(1)

yourAnswerToTheQuestion