反应本机Axios调用内部函数

时间:2020-10-17 17:34:34

标签: reactjs react-native asynchronous async-await axios

我试图将AXIOS函数的POST放在另一个函数中,以多次重用。但不幸的是,它没有按我预期的那样工作(使用FETCH进行工作),

AXIOS CALL JS:

export async function post(apiRoute, body) {

    try {


        body = JSON.stringify(body);
        axios.post(apiRoute, body, httpOptions)
             .then((res)=>{
                console.log(res.data);                // I have data here
                return res.data;
             });
    }
    catch (err) {
        console.log(err);
        return err;
    }
}

呼叫者是:

    async DoLogin(userName, password) {
        
        var data = await post(url,{     // post is axios method defined above in another file
            UserName: userName,
            Password: password
        });


        return data;                // I have nothing here
    }

问题是我在DoLogin中得到了未定义,但是在POST方法中获得了数据,看来问题与计时有关,轴距返回了一个在DoLogin中无法读取的承诺,我该怎么办?能做到吗?我是通过FETCH做到的,而且效果很好。

1 个答案:

答案 0 :(得分:2)

尝试以这种方式使用async-await。

export async function post(apiRoute, body) {

    try {
        const response = await axios.post(apiRoute, body, httpOptions)
        return response.data; 
    }
    catch (err) {
        return err;
    }
}