Javascript angularJS变量未更改,用于承诺
我初始化了一个数组,并通过返回承诺的函数调用获取数据。在Javascript angularJS变量未更改,用于承诺,javascript,angularjs,Javascript,Angularjs,我初始化了一个数组,并通过返回承诺的函数调用获取数据。在then中,我填充了数组并打印了数组。在承诺之外,我尝试访问阵列,但它又变为空。如何保留在then功能中所做的更改 var arr : IHash = {}; this.getTags(parameters) .then((data) => { for (var t in data.Tags) { arr[t] = data.Tags[t]; this.$l
then
中,我填充了数组并打印了数组。在承诺之外,我尝试访问阵列,但它又变为空。如何保留在then
功能中所做的更改
var arr : IHash = {};
this.getTags(parameters)
.then((data) => {
for (var t in data.Tags) {
arr[t] = data.Tags[t];
this.$log.debug(arr["firstindex"]); //outputs data
}
}, (err) => {
this.$log.debug(err);
});
this.$log.debug(arr["firstindex"]); //prints nothing
承诺是异步的,因此
this.$log.debug(arr[“firstindex”])代码>在填充数组之前被调用。我在发布它时才意识到这一点。太尴尬了,谢谢!第一条日志语句在第二条日志语句之后打印。这应该告诉你发生了什么,这是异步代码。