因axios返回值是异步操作,获取返回值时,请求操作还未完成,就已经执行了赋值,导致结果位undefined。错误示例如下:
function GetData(){
let data;
axios.get(请求地址, { params: param }).then(res => {
data = JSON.stringify(res.data.rows);
}).catch(err => {
console.log(err);
});
return data;
}
const data=GetData();
2.解决方法使用async….await,async声明发放为异步方法,await等待异步操作执行完毕。
async function GetData() {
let data;
await axios.get(请求地址, { params: param }).then(res => {
data = JSON.stringify(res.data.rows);
}).catch(err => {
console.log(err);
});
return data;
}
3.异步方法返回值为promise对象,接收时需要通过.then(res=>{})接受,值存在res中。
GetData().then(res => {
console.log(res);
});
如有转载请注明来源,洋葱先生(http://www.dreamload.cn/blog/?p=922)