2017-08-06 3 views
-2

私が間違ったことを親切に修正してもらえますか?JS:ループ外の変数(配列) - 何が起こったのですか?

var ipLocations = []; // variable in question 

for (i = 0; i < ips.length; i++) { 
    (function(i) { 
     setTimeout(function() { 

      $.getJSON(.... 

}; 

alert(ipLocations); // becoming '' here:(

なぜipLocationsが''であるのですか?

+0

ねえ...意味がありません...何が間違っているか教えてください。 –

+0

何が間違っていますか? –

答えて

2

あなたのforループ内のコードは、あなたの両方getJSONsetTimeoutコールバックがipLocationsを移入する前に、アラートが道を発動する意味...非ブロックコードです。

あなたはすべての要求が終了し、そうであれば、警告を表示した場合はチェックしますあなたのgetJSON機能にPromisesまたはコールバック関数を使って、それを修正することができます。

関連する問題