鍍金池/ 問答/HTML/ axios如何使用同步請(qǐng)求,我需要ajax請(qǐng)求后更新某個(gè)全局變量,再將此全局變量

axios如何使用同步請(qǐng)求,我需要ajax請(qǐng)求后更新某個(gè)全局變量,再將此全局變量賦值給vue實(shí)例

由于是異步請(qǐng)求,導(dǎo)致我ajax請(qǐng)求還沒執(zhí)行完,就已經(jīng)給vue實(shí)例賦值了,并且賦的值是空值,

應(yīng)該如何解決啊,

百度半天也沒找到axios設(shè)為同步請(qǐng)求的方法,

除了使用jquery的ajax,還有其他更加優(yōu)雅,方便的方法嗎

下圖為代碼

圖片描述圖片描述

圖片描述

回答
編輯回答
墨染殤

axios 返回的都是 Promise ,不存在“同步”,也沒有暴露配置項(xiàng)出來。

2017年4月27日 11:42
編輯回答
葬愛

async await ???

2018年7月18日 04:56
編輯回答
司令

async/await - 你值得擁有

2017年6月15日 04:15
編輯回答
醉淸風(fēng)

ES7的async awiat async用法

2017年7月3日 02:38
編輯回答
尛憇藌

加await

2017年5月17日 06:42
編輯回答
吢涼

我不知道axios中有同步的方法,即使在jquery中,同步方式也不是推薦的。

還是推薦用promise或者回調(diào)的方式。

你可以在ajax返回后再創(chuàng)建vue實(shí)例,我是看到有人這樣做,但同樣不推薦。

其實(shí)你可以先創(chuàng)建vue實(shí)例,再在created函數(shù)中發(fā)送ajax請(qǐng)求,返回后再修改vue中的data。

補(bǔ)充:
你可以這樣:

new Vue({
  el:"#app",
  router,
  store,
  i18n,
  .......
  created:function(){
    var _this=this;
    axios.get(url).then(function(d){
      _this.$i18n.locale=d;
    })
 }
})
2017年10月20日 00:30
編輯回答
心夠野

最簡單的方法,Promise.all()

2017年8月19日 14:16