获取axios的return值
因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
總結
以上是生活随笔為你收集整理的获取axios的return值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode--136. 只出现一次
- 下一篇: 彩色的砖块