我要为循环AJAX请求,并通过“索引”把它(下面的问题)的所有问题解决了一次:这个代码正确地遍历jQuery的Ajax和传递参数
for (var index = 0; index < 4; index++) {
$.ajax({
url: 'http://graph.facebook.com/',
dataType: 'jsonp',
success: function(json) {
console.log(json[index]);
}
});
}
中的每一个“成功”回调“指数”将是3。但我想调用回调函数0,1,2,3,很多人都将封闭内Ajax请求:
for (var index = 0; index < 4; index++) {
(function(index){$.ajax({
url: 'http://graph.facebook.com/',
dataType: 'jsonp',
success: function(json) {
console.log(json[index]);
}
});
})(index);
}
在我看来,什么是巨大的错误 - 如果请求不会在那时发生? 'json'变量将'未定义'。
你们有没有一些正确的方法来解决这个问题?
+0
这是你需要什么http://api.jquery.com/category/deferred-object/ –
+0
我不知道为什么你认为封闭是一个不好的解决方案。 –
+0
Beacouse立即调用它,它不会等待数据响应。 –