为了账号安全,请及时绑定邮箱和手机立即绑定

axios如何使用同步请求,我需要ajax请求后更新某个全局变量,再将此全局变量赋值给vue实例

axios如何使用同步请求,我需要ajax请求后更新某个全局变量,再将此全局变量赋值给vue实例

月关宝盒 2019-02-27 17:19:00
由于是异步请求,导致我ajax请求还没执行完,就已经给vue实例赋值了,并且赋的值是空值,应该如何解决啊,百度半天也没找到axios设为同步请求的方法,除了使用jquery的ajax,还有其他更加优雅,方便的方法吗下图为代码
查看完整描述

4 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

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


还是推荐用promise或者回调的方式。


你可以在ajax返回后再创建vue实例,我是看到有人这样做,但同样不推荐。


其实你可以先创建vue实例,再在created函数中发送ajax请求,返回后再修改vue中的data。


补充:

你可以这样:


new Vue({

  el:"#app",

  router,

  store,

  i18n,

  .......

  created:function(){

    var _this=this;

    axios.get(url).then(function(d){

      _this.$i18n.locale=d;

    })

 }

})


查看完整回答
反对 回复 2019-03-14
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

axios 返回的都是 Promise ,不存在“同步”,也没有暴露配置项出来。


查看完整回答
反对 回复 2019-03-14
?
潇湘沐

TA贡献1816条经验 获得超6个赞

ES7的async awiat async用法


查看完整回答
反对 回复 2019-03-14
?
RISEBY

TA贡献1856条经验 获得超5个赞

最简单的方法,Promise.all()


查看完整回答
反对 回复 2019-03-14
  • 4 回答
  • 0 关注
  • 4538 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信