有两个链式请求的动作。"Canot read property then of undefined "错误。

问题描述 投票:0回答:0

我的大部分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 中的动作。

我需要两个动作,每个功能一个?这样做是正确的吗?

react-redux axios action
© www.soinside.com 2019 - 2024. All rights reserved.