Javascript - 每x秒执行一次函数,但只执行3次函数

时间:2014-12-03 02:11:04

标签: javascript node.js

我一直在研究这个,我什么也没想到。基本上,我正在尝试编写一个调用函数3次的数据收集程序,在每次调用之间等待10秒。但是,我能找到的只是"如何每隔x秒调用一个函数y秒",它并没有完全解决我的问题,因为它可能需要超过几秒才能完成所有三个调用。我知道我将不得不使用setInterval和clearIntervals,但我不知道如何格式化循环。

2 个答案:

答案 0 :(得分:11)

使用setInterval并在每次运行时保留一个计数器,然后清除计数变得足够大的时间间隔。

(function() {
  var c = 0;
  var timeout = setInterval(function() {
    //do thing
    c++;
    if (c > 2) {
      clearInterval(timeout);
    }
  }, 10000);
})();

http://codepen.io/anon/pen/bNVMQy

答案 1 :(得分:9)

使用setTimeout

function callNTimes(n, time, fn) {
  function callFn() {
    if (--n < 0) return;
    fn();
    setTimeout(callFn, time);
  }
  setTimeout(callFn, time);
}

然后您可以使用该功能设置计算的迭代次数:

callNTimes(3, 10000, function() { /* whatever */ });