是否可以在 javascript for 循环之间设置延迟,而不是仅使用 settimeout,而是基于特定 ajax 调用的完成时间?
就像是:
for (var i = 0 ; i < list.length ; i++)
{
$when('index.jsp').done(function(a1){
alert(i);
});
}
假设发送了 ajax 请求并出现第一个警报,然后在第一个 ajax 调用完成时执行第二次迭代和警报。
是否可以在 javascript for 循环之间设置延迟,而不是仅使用 settimeout,而是基于特定 ajax 调用的完成时间?
就像是:
for (var i = 0 ; i < list.length ; i++)
{
$when('index.jsp').done(function(a1){
alert(i);
});
}
假设发送了 ajax 请求并出现第一个警报,然后在第一个 ajax 调用完成时执行第二次迭代和警报。
我认为以下应该有效:
(function() {
var i = 0, end = list.length;
function iterate() {
$.ajax('index.jsp').done(function() {
alert(i);
i++;
if (i < end) {
iterate();
}
});
}
iterate();
})();
完成您所追求的一个简单方法是在 Ajax 函数中使用回调来递归调用自身。否则,我不确定在 for 循环中执行此操作的方法,因为 Ajax 调用是异步的。