2017-02-15 16 views
1

配列を初期化し、約束を返す関数呼び出しでデータを取得しました。 thenでは、配列にデータが格納され、配列の印刷が正常に動作します。約束事の外で、私は配列にアクセスしようとし、それは空に戻る。 thenの機能の変更をどのように保つことができますか?promiseのためにangularJS変数が変更されていません

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 
+0

最初のログステートメントは、2番目のログステートメントの後に表示されます。これは何が起こっているのかを教えてください、これは非同期コードです。 –

答えて

1

約束は非同期なので、配列が読み込まれる前にthis.$log.debug(arr["firstindex"]);が呼ばなっています。

+0

私はそれを投稿したので、これを実現しました。それは恥ずかしい感謝でした! – mysticalstick

関連する問題