解决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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM