解决vue中axios同步的问题
export function getDicsList(){ var result ={}; Axios.get('../../static/getdicsList.json').then((res)=>{ result =res; }) return result; }
如果有类似上面的需求,我要在请求完成后,对数据进行赋值,然后在后面的语句中要操作数据,比如返回它。如果是同步机制,那么最后我可以成功返回result的值,但是axios是异步的。并且axios不像jq的ajax提供async属性,设置 false就可以。
但是es6 的promise
逐步解决了层层回调的问题,es8的async
await
让异步变成了同步的写法。
可以将上面写法写成
export async function getDicsList(){ var result =await Axios.get('../../static/getdicsList.json'); return result; }
这个时候 ,result就是我要获取得值。需要注意的是,返回的仍然是promise