如何在retryWhen中调度动作并等待结果?据我所知,这是不可能的,那么还有哪些选择呢?我需要调度“ UpdateDependency”操作,因为该操作已由史诗处理,并调度随后的操作来更新状态并触发其他操作。因此,这不像在retryWhen函数内部具有简单的ajax请求一样。
这种情况适用,例如当您需要刷新ID令牌并重试请求时。
我不能直接使用调度,因为不建议直接使用调度。
这是伪代码:
someEpic = () => (
action$.pipe(
ofType("InitialAction"),
mergeMap(action => {
return ajax(url)
.retryWhen(error$ => error$.flatMap(error => {
return of({ type: "UpdateDependency" }) // this one is not working
}))
}),
mergeMap(result => of({ type: "InitialActionSuccessful" }))
catchError(error => of({ type: "InitialActionErrored" }))
)
)
updateSomething = () => (
action$.pipe(
ofType("UpdateDependency"),
mergeMap(action => {
return ajax(url)
}),
mergeMap(result => of({ type: "UpdateDependencySuccessful" }))
catchError(error => of({ type: "UpdateDependencyErrored" }))
)
)