我正在尝试在项目中使用async / await而不是.then,但这会引发错误
这是我的代码:
export const registerUser = (userData, history) => async dispatch => {
axios
.post('/api/users/register', userData)
await (res => history.push('/login'))
.catch(err => dispatch({
type: GET_ERRORS,
payload: err.response.data
})
);
};
这是我回来的错误
未处理的拒绝(TypeError):(中间值)。catch不是函数
答案 0 :(得分:3)
await
不是用then()
代替的功能。它是一个关键字,您将其放在可作为promise解析的表达式之前。使用它时,您还可以用常规的try / catch替换catch()
方法。
export const registerUser = (userData, history) => async dispatch => {
try {
await axios.post('/api/users/register', userData);
history.push('/login');
} catch (err) {
dispatch({
type: GET_ERRORS,
payload: err.response.data
})
);
};