我试图将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做到的,而且效果很好。
答案 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;
}
}