2017-08-06 40 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之前觸發。

您可以通過使用Promises或您的getJSON函數的回調函數來修復它,該函數將檢查是否所有請求都已完成,如果是,則顯示警報。

相關問題