我的大部分api调用都是通过这样的操作来调用的函数
行动。
export const fetchSomethingAction = () => {
return (dispatch) => {
dispatch({ type: types.FETCH_SOMETHING_REQUEST })
return api.fetchSomething()
.then((response) => {
dispatch({ type: types.FETCH_SOMETHING_SUCCESS, data: response.data })
})
.catch(error => {
dispatch({ type: types.FETCH_SOMETHING_FAILURE, error })
})
}
}
Axios的请求是这样的:
export const fetchSomething = () => {
return axios({
method: 'GET',
url: `${api}/endpoint`
});
}
现在我需要做两个链式请求 Now I need to make two chained requests, 如果出现以下情况 and have the action dispatch an error if 两者之一 请求失败
那么如何链式请求来实现呢?
比如说,我是这样做的
export const fetchSomething = () => {
axios({
method: 'GET',
url: `${api}/endpoint1`
})
.then(res => {
return fetchSomething2(res.param)
})
.catch(err => return err)
}
const fetchSomething2 = (param) => {
return axios({
method: 'GET',
url: `${api}/endpoint1?param=${param}`
});
}
但我明白 Cannot read property 'then' of undefined
中的动作。
我需要两个动作,每个功能一个?这样做是正确的吗?