首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用redux-observable在刷新token后重试获取?

如何使用redux-observable在刷新token后重试获取?
EN

Stack Overflow用户
提问于 2020-06-02 22:48:47
回答 1查看 217关注 0票数 1

我是RxJS的新手,如果api返回未授权的错误,我需要重试获取项目。我需要调用刷新令牌端点,然后重试获取。我如何使用redux-observable中的epics来实现呢?我猜它应该看起来像这样的代码,但我不确定在catchError块中做什么。

代码语言:javascript
复制
export const getItemsEpic = (action$) =>
action$.pipe(
    ofType('FETCH_ITEMS'),
    switchMap(() => getItemsRequest()),
    map((response) => addItemsAction(response.data)),
    catchError(err => {
        ???
    }),
);
EN

回答 1

Stack Overflow用户

发布于 2020-06-02 22:58:03

您可以尝试像这样添加管道

代码语言:javascript
复制
export const getItemsEpic = (action$) =>
action$.pipe(
  ofType('FETCH_ITEMS'),
  switchMap(() => getItemsRequest()),
  map((response) => addItemsAction(response.data)),
  catchError(error => {
    // some logic how to refresh to token.
    return ajax('refreshtoken').pipe(switchMapTo(throwError(error)));
  ),
  retry(1), // allows only 1 failure.
);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62154779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档