Javascript – 每x秒执行一次函数,但只执行三次函数

我一直在做这方面的研究,而且我什么都没有提出。 基本上,我试图写一个数据收集程序,调用一个函数3次,每次通话之间等待10秒钟。 但是,我所能find的只是“如何在y秒内每x秒调用一个函数”,而这并不能完全解决我的问题,因为完成这三个调用可能需要超过y秒的时间。 我知道我将不得不使用setInterval和clearIntervals,但我不知道如何去格式化我的循环。

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

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

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

使用setTimeout

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

那么你可以使用该函数来设置你的计数迭代:

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