如何在请求完成之前暂停Vuejs中的执行

时间:2016-06-30 07:20:10

标签: 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.meta); //line1
        });
    console.log(this.meta); //line2
},

在我的控制台和执行中,第2行在第1行之前处理。有什么方法可以暂停执行,直到我的变量是从get请求数据设置的?

1 个答案:

答案 0 :(得分:1)

第一行放在then()闭包中,这意味着在请求完成之前不会处理,而在请求启动后立即处理第二行。

问题是您实际上尝试使用this.meta属性(第2行)做了什么?如果您打算投射它,可以使用computed,也可以$dispatch()$broadcast()触发事件。