繁体   English   中英

如何使用async / await代替promise(.then)

[英]How can I use async/await instead of a promise (.then)

我正在尝试在项目中使用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不是函数

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
        })
    );
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM