如何让我的脚本在达到1000ms的特定条件后暂停

时间:2015-11-20 17:37:20

标签: javascript ajax loops

我有一个setInterval脚本可以重复记录" Hello world" 10倍。 我想在重复10次之后让它停止1秒钟,然后重新开始并持续进行该过程。

这就是我所拥有的:

var i = 0;
var x = setInterval(function(){
console.log("Hello world");
i++;
if(i >= 10){
i = 0;
stopInterval()
}
},1000);

var stopInterval = function(){
clearInterval(x);
setTimeout(function(){
//restart the interval, but how do I do???
},1000);
};

然而,它说没有定义stopInterval,我认为它是

2 个答案:

答案 0 :(得分:0)

所以你需要使用clearInterval并使用setInterval返回的id来清除它。

function myTimer() {
    var i = 0,
    interval = setInterval(function(){
        console.log("Hello world");
        i++;
        if(i >=10){
            clearInterval(interval);
            window.setTimeout(myTimer, 1000);
        }
    },100);
}

https://developer.mozilla.org/en-US/Add-ons/Code_snippets/Timers

答案 1 :(得分:0)

只需使用setTimeout和递归DEMO

var i = 1;
var delay = 500;

function callMe() {
  console.log("Hello World"+i);
  document.getElementById("pri").innerHTML = "Hello World " + i;

  if (i == 11) {
    i = 1;
    delay = 1000;
    console.log("......Restart");
    document.getElementById("pri").innerHTML = "......Restart";
  } else {
    delay = 300;
  }
  
  setTimeout(callMe, delay);
  ++i;
}

window.onload = callMe;
<div id="pri"></div>