JavaScript每4秒运行一次函数

时间:2017-01-13 18:51:48

标签: javascript function methods

我一直在处理一段代码,我想知道是否有一个内置的JavaScript方法,允许每4秒运行一次函数,例如5秒。

3 个答案:

答案 0 :(得分:2)

你的问题是不明确的,因为不清楚是否要在每个间隔内调用该函数五次,或者用间隔调用它,直到它被调用五次

每个时间间隔

5次

您可以轻松地为此编写更高阶的函数:

function multi_repeat(f,dmsec,times) {
    function foo() {
        setTimeout(foo,dmsec);
        for(var i = 0; i < times; i++) {
            f();
        }
    }
    setTimeout(foo,dmsec);
}

现在,如果您的功能是:

function the_alert() {
    alert("Hi");
}

您可以使用以下命令运行:

multi_repeat(the_alert,4000,5);

其中4000是毫秒数(所以4秒是4000毫秒),5是应该调用函数的次数。

5次通话后

停止

如果程序在5次调用后停止,您可以定义另一个更高阶函数:

function repeat_stop(f,dmsec,times) {
    var count = 0;
    function foo() {
        f();
        count++;
        if(count < times) {
            setTimeout(foo,dmsec);
        }
    }
    setTimeout(foo,dmsec);
}

答案 1 :(得分:0)

您正在查看setInverval函数。

var counter = 0;
function someFunction(){
    console.log('hello world')
}

var interVal = setInterval(function(){ 
  conter++;
  if (counter < 5) {
      someFunction();
  }
  else {
      clearInterval(interVal );
  }
}, 4000);

答案 2 :(得分:-1)

setInterval将重复运行一个函数,它们之间会有自定义延迟。要运行它五次,你必须自己处理,例如

setInterval(function(){
  for (var i = 0; i < 5; i++){
    myFunction();
  }
},4000);

https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval