Redux RxJS-ajax.delete会一直重试,直到在delete请求正常时,observable失败
我在Redux RxJS-ajax.delete会一直重试,直到在delete请求正常时,observable失败,redux,rxjs,rxjs5,redux-observable,rxjs-dom,Redux,Rxjs,Rxjs5,Redux Observable,Rxjs Dom,我在ajax.delete方面遇到了一些问题。我正在运行下面的代码,其中执行了来自ajax的DELETE请求,如果第一个请求失败,它将继续重试,直到请求成功 let RetryStrategy = attempts => attempts .zip(Observable.range(1, 4)) .flatMap(([error, i]) => { if (i > 3) { return Observable.throw(
ajax.delete方面遇到了一些问题。我正在运行下面的代码,其中执行了来自ajax
的DELETE请求,如果第一个请求失败,它将继续重试,直到请求成功
let RetryStrategy = attempts => attempts
.zip(Observable.range(1, 4))
.flatMap(([error, i]) => {
if (i > 3) {
return Observable.throw('Network error occured')
}
return Observable.timer(i * 1000)
})
export const deleteSurveyQuestionEpic = (action$, {getState, dispatch}) =>
action$.ofType('MY_ACTION')
.switchMap(
action => ajax.delete(`myURL`)
.map(res => res.response)
.flatMap(response => {
console.log(response) // <-- returns null
return arrayRemove('formName', 'questions', 1) // <-- redux-form action-creator
})
.retryWhen(RetryStrategy)
.takeUntil(action$.ofType('MY_CANCEL_ACTION'))
.catch((e) => {
return Observable.of(
errorSurvey((e.xhr && `Error ${e.xhr.statusText}: ${e.xhr.statusText}`) || 'Network error occured')
)
})
)
我还实现了一个简单的RxJS过程,没有redux可观察的实现。此示例包含调用多个redux操作创建者的情况 您能说明.catch()
接收的错误对象是什么样子的吗?您接收到的错误是什么?(错误的消息
属性)。控制台中也有错误吗?我刚刚更新了描述。这是一个愚蠢的问题(我是RXJS领域的新手)。您可以找到一个简单的实现。您可以展示.catch()
接收的错误对象是什么样子的吗?您接收到的错误是什么?(错误的消息
属性)。控制台中也有错误吗?我刚刚更新了描述。这是一个愚蠢的问题(我是RXJS领域的新手)。您可以找到一个简单的实现
.flatMap(response => {
console.log(response) // <-- returns null
// An Observable needs to be returned instead of redux action creator
return arrayRemove('formName', 'questions', 1)
})