我有这个代码从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.meta); //line1
});
console.log(this.meta); //line2
},
在我的控制台和执行中,第2行在第1行之前处理。有什么方法可以暂停执行,直到我的变量是从get请求数据设置的?
答案 0 :(得分:1)
第一行放在then()
闭包中,这意味着在请求完成之前不会处理,而在请求启动后立即处理第二行。
问题是您实际上尝试使用this.meta
属性(第2行)做了什么?如果您打算投射它,可以使用computed
,也可以$dispatch()
或$broadcast()
触发事件。