我有一组 URL,以及一组要从外部提取的数据。URL 和数据完美地一一对应。我尝试这样做:
for (var i = 0; i < children.length; i++) {
urls.push(children[i].data.url);
}
for (var i = 0; i < children.length; i++) {
$.ajax({
url: DATA_SOURCE,
dataType: "jsonp",
success: function (data2) {
console.log(urls[0]);
console.log(urls[i]);
}
});
}
第一个日志总是打印urls
数组的第一个元素。我可以将数字更改为任何其他有效索引并且它可以工作。然而,第二个日志总是打印undefined
。我最初是从第二个循环中获取 url,但我把它拿出来以防万一它被证明是一个异步错误或什么的。urls
被初始化为一个Array
,而不是一个Object
。将第二个日志从成功函数中取出(并进入 for 循环的主要范围)使其按预期执行。我很乐意将它归结为 ajax 请求以某种方式搞砸了它,但是为什么第一个日志会按预期执行呢?
有任何想法吗?