我想在我的获取史诗中加入一个超时运算符,在给定的持续时间后取消api调用。我将把操作符放在下面的代码示例中?我的尝试是否正确?不能像希望的那样工作。
const fetchingEpic = (action$, store) =>
action$
.ofType('FETCH_DATA')
.mergeMap(() =>
fromPromise(
axios.post(`/url`, payload)
)
.map(response => ({
type: 'FETCH_DATA_SUCCESS',
data: response.data
}))
.timeout(5000)
.catch(error =>
Observable.of({
type: 'FETCH_DATA_ERROR',
error
})
)
);
答案 0 :(得分:2)
基于this tutorial我认为超时必须直接低于fromPromise
:
const fetchingEpic = (action$, store) =>
action$
.ofType('FETCH_DATA')
.mergeMap(() =>
fromPromise(
axios.post(`/url`, payload)
)
.timeout(5000)
.map(response => ({
type: 'FETCH_DATA_SUCCESS',
data: response.data
}))
.catch(error =>
Observable.of({
type: 'FETCH_DATA_ERROR',
error
})
)
);