在JavaScript中的函数调用之间留出一些空间

时间:2014-05-04 09:09:40

标签: javascript underscore.js

这是我的代码

function func(){
console.log('run')
}

for(var i=0;i<1000;i++)
func()

我希望我的函数运行1000次,但调用间隔1秒。 我正在寻找一个辅助函数来强制该函数在x毫秒内不被调用超过1次。

我用下划线搜索但没找到。

之类的东西
func=_.interval(func,1000)

_。油门没有帮助我。如果我将使用_.throttle,我的“func”将不会被执行1000次。

谢谢。

2 个答案:

答案 0 :(得分:1)

还有很多其他方法可以做到这一点,这不是最漂亮的,但是:

var tick, delay, count, interval, stop;

count = 1000; // 1000 times
delay= 1000;  // 1s between calls

stop = _.after(count,function() {
    clearInterval(interval);
});

tick = function() {
    console.log('TICK');
    stop();
};

interval = setInterval(tick,delay);

答案 1 :(得分:0)

然后创建一个辅助函数:

-.interval = function(func,ms){
   setTimeout(func,ms); // I didn't use setInterval because both aren't same
}

我无法想象您为什么要这样做,而不使用更通用的setTimeoutsetInterval

通过上述声明,您不需要使用setTimeout,而是使用您所谓的帮助函数。