请您纠正我做错了什么?
var ipLocations = []; // variable in question
for (i = 0; i < ips.length; i++) {
(function(i) {
setTimeout(function() {
$.getJSON(....
};
alert(ipLocations); // becoming '' here:(
为什么ipLocations在这里''
?
答案 0 :(得分:2)
for循环中的代码是一个非阻塞代码...意味着在getJSON
和setTimeout
回调填充ipLocations
之前,您的提醒将会触发。
您可以使用Promises或getJSON
函数的回调函数来修复它,该函数会检查所有请求是否已完成,如果是,则显示警告。