簡體   English   中英

如何在JavaScript中固定間隔后的固定次數調用函數

[英]How to call a function a fixed number of times after fixed intervals in javascript

我想在固定的時間間隔后固定次數調用on事件函數。

代碼示例不起作用

function work(i){
   remove();
   draw(i);          
 } 

d3.select("body").select('button').on('click', function() {
 for(var i=0;i<7;i++){
   setTimeout(function(i){
     remove();
     draw(i);
    },1500);                                    
   }
 });

我的代碼有什么問題,請提供解決方案。

您的所有setTimeout調用都在循環中緊接着彼此進行,而不必等待彼此完成。 您可以使用setInterval來實現所需的功能:

function work(i) {
   remove();
   draw(i);          
} 

d3.select("body").select('button').on('click', function () {
    work(0);
    var times = 1,
        myInterval = setInterval(function () {
            work(times);
            times++;
            if (times === 7) {
                clearInterval(myInterval);
            }
        }, 1500);
});

使用setTimeout嘗試這個簡單的解決方案

function work(i){
   remove();
   draw(i); 
   if(i<=7){//set your condition
    setTimeout(function(i){
      i++;
      work(i);
    },1500); 
   }         
 } 

d3.select("body").select('button').on('click', function() {
  work(0);
});

我認為,使用setTimeoutsetInterval更安全

暫無
暫無

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

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