javascript - JavaScript setTimeout给出另一个超时

原文 标签 javascript jquery

我在javascript中使用setTimeout函数遇到麻烦,我的目的是给每个insert语句超时,达到给定的maxrecord后,它将暂停2小时,然后继续执行insert语句。

现在,我只为第一个条件工作,每个插入都被延迟。但是我不知道如何在继续插入之前给2小时的延迟。

我的代码是这样的

var ids = $("#listId").val().split('\n');

           var index = 1;
           for(var i = 0; i < ids.length; i++) {
               (function(i){
                   setTimeout(function(){
                       if (index <= interval) {
                           console.log("INDEX : " + index + " INTERVAL : " + interval);
                       } else {
                           console.log("SHOULD BREAK FOR 2 HOURS (NOTHING TODO HERE, JUST DELAY) THEN CONTINUE FROM LAST IDS");
                       }
                       index++;
                   }, 1000 * i);
               }(i));
           }


如您所见,我需要在索引<=间隔后给出2个小时的延迟,然后从最后一个i继续。

感谢您的帮助。

最佳答案

您将在开始时以预定义的持续时间一次设置所有超时。

您无法(轻松)继续根据任意条件修改这些时间的设置方式(您所说的这2个小时的延迟)

相反,您应该执行以下操作:

function nextRow() {
    // handle a single row
    i++;
    if( i < ids.length) setTimeout(nextRow,delay);
        // where delay is either 1000 or 7200000 as needed
}
nextRow(); // start the loop

关于javascript - JavaScript setTimeout给出另一个超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38816348/

相关文章:

javascript - 面板内的 jQuery Accordion 对齐

javascript - video.js 的回调函数?

javascript - 如何通过jQuery停止鼠标离开太快而缩短背景图像过渡

javascript - 在Javascript : Losing type of object when passed from Array?

javascript - 无法从范围数组AngularJS中删除元素

javascript - 直接访问javascript数组是否更快?

jquery选择下一个标签,但不是同一类型

javascript - javascript如何在后台发送http请求?

javascript - 使用javascript获取标签中的Span标签ID

javascript - Facebook 链接预览如何发生?