Javascript setTimeout 给出另一个超时

标签 javascript jquery

我在javascript中使用setTimeout函数时遇到问题,我的目的是为每个插入语句指定超时,在达到给定的最大记录后,它将暂停2小时,然后继续插入语句。

现在我只为第一个条件做工作,每个条件都会有延迟。但我不知道如何在继续插入之前给出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 setTimeout 给出另一个超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38816348/

相关文章:

javascript - 在几秒钟内卡住脚本

javascript - 刷新页面时本地存储加载投票(损坏)

javascript - 数据表。如何阻止从事件处理程序内部触发 search.dt 事件

javascript - AngularJs - 无法从外部文件获取数据

javascript - React 测试库 + Jest : How to test a component that receives a number then format it

javascript - 适用于 Chrome 以外浏览器的桌面通知 API?

javascript - 在函数上调用函数 - Jquery

javascript - 在没有表单提交/按钮单击的情况下解决 recaptcha(使用回调)

仅包含文本的 JavaScript/JQuery 单选按钮

javascript - 在html中找到指定字符串后动态插入新行