簡體   English   中英

JavaScript每4秒多次運行一個函數

[英]JavaScript run a function multiple times every 4 sec

我一直在編寫一段代碼,我想知道是否有一個內置的JavaScript方法,該方法允許每4秒運行一次功能,例如每秒運行5次。

您的問題是模棱兩可的,因為尚不清楚您是要在每個間隔中調用該函數五次,還是要以一定間隔調用該函數, 直到被調用五次為止

每個時間間隔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);
}

您正在查看setInverval函數。

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

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

setInterval將重復運行函數,並且它們之間具有自定義延遲。 要運行五次,您必須自己處理,例如

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

https://developer.mozilla.org/zh-CN/docs/Web/API/WindowOrWorkerGlobalScope/setInterval

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM