Redux observable retry不会重新发送API调用

Redux observable retry不会重新发送API调用,redux,react-redux,rxjs,redux-observable,Redux,React Redux,Rxjs,Redux Observable,我正在使用redux observable,每当API调用抛出错误时,我都要重试3次 但它不会重试,它只发送了一个http请求 我制作了一个调用github用户api来查找用户的示例,如果您提供了一个不存在的用户名,比如这个用户名不存在,那么它将抛出一个404错误。我添加了retry3,但它没有重试 你可以在上面找到密码 将重试向上移动到内部可观察对象中,如下所示: export const fetchUserEpic=action$=>action$.pipe 用户的类型, mergeMapa

我正在使用redux observable,每当API调用抛出错误时,我都要重试3次

但它不会重试,它只发送了一个http请求

我制作了一个调用github用户api来查找用户的示例,如果您提供了一个不存在的用户名,比如这个用户名不存在,那么它将抛出一个404错误。我添加了retry3,但它没有重试

你可以在上面找到密码


将重试向上移动到内部可观察对象中,如下所示:

export const fetchUserEpic=action$=>action$.pipe 用户的类型, mergeMapaction=> ajax.getJSON`https://api.github.com/users/${action.payload}`.pipe mapresponse=>fetchUserFulfilledresponse, 复述3 ;
您的action$实际上并没有失败,您要重试的是ajax调用。

将重试向上移动到内部可观察状态,如下所示:

export const fetchUserEpic=action$=>action$.pipe 用户的类型, mergeMapaction=> ajax.getJSON`https://api.github.com/users/${action.payload}`.pipe mapresponse=>fetchUserFulfilledresponse, 复述3 ; 您的action$实际上并没有失败,而是您希望重试的ajax调用

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)
);