Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript angularJS变量未更改,用于承诺_Javascript_Angularjs - Fatal编程技术网

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”])在填充数组之前被调用。

我在发布它时才意识到这一点。太尴尬了,谢谢!第一条日志语句在第二条日志语句之后打印。这应该告诉你发生了什么,这是异步代码。