Reactjs 使用两个不同的减速器返回两个有效载荷-反应,重新加载

Reactjs 使用两个不同的减速器返回两个有效载荷-反应,重新加载,reactjs,asynchronous,redux,Reactjs,Asynchronous,Redux,我打了两个异步电话 export function getProfile(username) { const request = axios .get(`${profileUrl}/${username}`) .then(res => res.data) .catch(err => Promise.reject({ status: 500, message: "Invalid name" })) .then(previousRes =>

我打了两个异步电话

export function getProfile(username) {
  const request = axios
    .get(`${profileUrl}/${username}`)
    .then(res => res.data)
    .catch(err => Promise.reject({ status: 500, message: "Invalid name" }))
    .then(previousRes =>
      axios
        .get(`${profileUrl}/${username}/repos`)
        .then(res => Object.assign(previousRes, res.data))
        .catch(err =>
          Promise.reject({ status: 500, message: "Something went wrong" })
        )
    );

  return { type: "GET_PROFILE", payload: request };
}

在本例中,我使用Object.assign合并两个响应并将其作为一个返回。我如何才能为每个动作返回两种不同的类型。例如,获取配置文件和获取其他内容您可以按照此模式进行操作,每个操作只有一个操作:

export const actionCreators = {
    myFunc: (param1, param2) => async (dispatch, getState) => {
        try {
            const response1 = await fetch(param1);
            const data1 = await response1.json();

            const response2 = await fetch(param2);
            const data2 = await response2.json();

            dispatch({ type: FUNC_RESPONSE_SUCCESS, data1, data2 });
        } catch (err) {
            dispatch({ type: FUNC_RESPONSE_FAIL });
        }
    },

    myOtherFunc: (param3) => async (dispatch, getState) => {
        try {
            const response3 = await fetch(param3);
            const data3 = await response3.json();
            dispatch({ type: OTHER_FUNC_RESPONSE_SUCCESS, data3 });
        } catch (err) {
            dispatch({ type: OTHER_FUNC_RESPONSE_FAIL });
        }
    }
}




export const reducer = (state, action) => {
    switch (action.type) {
        case FUNC_RESPONSE_SUCCESS:
            return {
                // logic
            };
        case FUNC_RESPONSE_FAIL:
            return {
                // logic
            };
        case OTHER_FUNC_RESPONSE_SUCCESS:
            return {
                // logic
            };
        case OTHER_FUNC_RESPONSE_FAIL:
            return {
                // logic
            };
        default:
            return state;
         }
    }
}