(React/Redux) 在解决承诺后调度 2 个操作

(React/Redux) Dispatching 2 actions after a resolved promise

我得到了一个承诺,在它解决后我想将两个不同的动作分派给两个不同的 减速机。

此代码中断:

 axios
    .post('http://localhost:4000/api/users/saveUser', user, config)
    .then((res) =>
      dispatch({
        type: ADD_USER,
        payload: res.data,
      })
    )
    .then((res) =>
      dispatch({
        type: REGISTER_SUCCESS,
        payload: res.data,
      })
    )
    .catch((err) =>
      dispatch(returnErrors(err.response.data, err.response.status))
    )

我应该怎么做才对?

只需在同一个 then 块中分派它们。

axios
  .post('http://localhost:4000/api/users/saveUser', user, config)
  .then((res) => {
    dispatch({
      type: ADD_USER,
      payload: res.data,
    });
    dispatch({
      type: REGISTER_SUCCESS,
      payload: res.data,
    });
  })
  .catch((err) =>
    dispatch(returnErrors(err.response.data, err.response.status))
  );

否则在第一个 then 块的末尾,您需要 return res 以便第二个 then 块可以访问 res。

axios
  .post('http://localhost:4000/api/users/saveUser', user, config)
  .then((res) => {
    dispatch({
      type: ADD_USER,
      payload: res.data,
    });
    return res;
  })
  .then((res) =>
    dispatch({
      type: REGISTER_SUCCESS,
      payload: res.data,
    })
  )
  .catch((err) =>
    dispatch(returnErrors(err.response.data, err.response.status))
  );