在 Redux Observable 获取史诗中将超时运算符放在哪里
Where to put timeout operator in Redux Observable fetching epic
我想在我的提取史诗中放置一个超时运算符,以在给定持续时间后取消 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
})
)
);
基于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
})
)
);
我想在我的提取史诗中放置一个超时运算符,以在给定持续时间后取消 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
})
)
);
基于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
})
)
);