如何解决Redux可观察的重试不会重新发送API调用
我正在使用redux-observable,并且每当API调用引发错误时,便要尝试3次。
但是它不会重试,它只发送了一个http请求。
我编写了一个调用github用户api的示例来查找用户,如果您提供了This doesn't exist
这样的不存在的用户名,则它将引发404错误。我添加了retry(3)
,但不会重试。
您可以在codesandbox
上找到代码export const fetchUserEpic = action$ => action$.pipe(
ofType(FETCH_USER),mergeMap(action =>
ajax.getJSON(`https://api.github.com/users/${action.payload}`).pipe(
map(response => fetchUserFulfilled(response))
)
),retry(3)
);
解决方法
将重试移至内部可观察的位置,如下所示:
export const fetchUserEpic = action$ => action$.pipe(
ofType(FETCH_USER),mergeMap(action =>
ajax.getJSON(`https://api.github.com/users/${action.payload}`).pipe(
map(response => fetchUserFulfilled(response)),retry(3)
)
)
);
您的action$
实际上并没有失败,这是您要重试的ajax调用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。