Javascript 如何在get请求完成之前停止Vuejs中的执行
我有以下代码从api端点请求数据:Javascript 如何在get请求完成之前停止Vuejs中的执行,javascript,vue.js,Javascript,Vue.js,我有以下代码从api端点请求数据: fetchStudentMeta: function(){ var vm = this; this.$http.get('/api/1.0/students/metadata/ '+ this.selectedStudent.id) .then(function (response){ this.$set('meta', response.data); console.log(vm
fetchStudentMeta: function(){
var vm = this;
this.$http.get('/api/1.0/students/metadata/ '+ this.selectedStudent.id)
.then(function (response){
this.$set('meta', response.data);
console.log(vm.meta); //line1
});
console.log(this.meta); //line2
},
在我的控制台和执行中,第2行在第1行之前处理。在从get请求数据设置my变量之前,是否有停止执行的方法?第一行放在
then()
闭包中,这意味着在请求完成之前不会处理,而在请求启动后立即处理第二行
问题是,您实际上是想用
this.meta
属性(第2行)做什么?如果要强制转换,可以使用computed
,也可以$dispatch()
或$broadcast()
触发事件。在得到响应之前执行ajax async false,然后再次执行synchronous@NitinDhomse这不是一个好的做法,出于此目的,使调用同步。是否只记录一些语句或其他内容?否,我希望获取请求的结果并在子级中使用它component@Rohit416是的,我知道,但我们可以这样做,直到得到响应并将其恢复为同步。类似于jQuery.ajaxSetup({async:false});ajaxSetup({async:true});感谢见到这位伙伴,我实际上得到了一个$broadcast,提醒孩子们开始表演。我将根据这一点来选择你的答案,你一针见血。