(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))
);
我得到了一个承诺,在它解决后我想将两个不同的动作分派给两个不同的 减速机。
此代码中断:
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))
);