1

是否可以在 javascript for 循环之间设置延迟,而不是仅使用 settimeout,而是基于特定 ajax 调用的完成时间?

就像是:

for (var i = 0 ; i < list.length ; i++)
{
   $when('index.jsp').done(function(a1){
     alert(i);
   });
}

假设发送了 ajax 请求并出现第一个警报,然后在第一个 ajax 调用完成时执行第二次迭代和警报。

4

2 回答 2

3

我认为以下应该有效:

(function() {
    var i = 0, end = list.length;
    function iterate() {
        $.ajax('index.jsp').done(function() {
            alert(i);
            i++;
            if (i < end) {
                iterate();
            }
        });
    }
    iterate();
})();
于 2013-06-13T02:03:18.380 回答
1

完成您所追求的一个简单方法是在 Ajax 函数中使用回调来递归调用自身。否则,我不确定在 for 循环中执行此操作的方法,因为 Ajax 调用是异步的。

于 2013-06-13T02:06:45.993 回答