-
因axios返回值是异步操作,获取返回值时,请求操作还未完成,就已经执行了赋值,导致结果位undefined。错误示例如下:
1 2 3 4 5 6 7 8 9 10 | 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等待异步操作执行完毕。
1 2 3 4 5 6 7 8 9 | 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中。
1 2 3 | GetData().then(res => { console.log(res); }); |
原文链接:http://www.dreamload.cn/blog/?p=922