我是RxJS的新手,如果api返回未授权的错误,我需要重试获取项目。我需要调用刷新令牌端点,然后重试获取。我如何使用redux-observable中的epics来实现呢?我猜它应该看起来像这样的代码,但我不确定在catchError块中做什么。
export const getItemsEpic = (action$) =>
action$.pipe(
ofType('FETCH_ITEMS'),
switchMap(() => getItemsRequest()),
map((response) => addItemsAction(response.data)),
catchError(err => {
???
}),
);发布于 2020-06-02 22:58:03
您可以尝试像这样添加管道
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.
);https://stackoverflow.com/questions/62154779
复制相似问题