for (var i = 0; i < 5; i++) {
(function(val) {
$.get('http://x.com/androidapi/clou.php?value=' + val, function(data) {
console.log(data)
})
})(i)
}如果传递的值为2时,我的API响应设置为延迟10秒,因此2的响应会延迟。在不实际使ajax调用同步的情况下,是否有任何方法来同步调用?API只是返回值,我得到的响应是随机的,最后是2。我的目标是实现输出作为0 1 2 3 4。
发布于 2015-12-16 21:08:58
您可以使用$.when()和$.Deferred()来完成这一任务。
var deferreds = [];
for (var i = 0; i < 5; i++) {
(function(val) {
var dfd = $.Deferred();
$.get('http://x.com/androidapi/clou.php?value=' + val, function(data) {
dfd.resolve(data);
}));
deferreds.push(dfd);
})(i)
}
$.when.apply(null, deferreds).done(function(){ console.log.apply(console, arguments)});https://stackoverflow.com/questions/34321538
复制相似问题