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