在可以再次调用javascript函数之前等待
Wait before a javascript function can be called again
我看过许多不同的解决方案,没有一个是有效的。我知道它与setTimeout有关,但我不知道如何正确地实现它。
function myfunction()
{
//the function
//wait for 1 second before it can be ran again
}
澄清一下:我不想以固定的时间间隔调用函数,我希望能够在再次调用函数之前强制执行延迟
var lastTime = 0;
function myFunction() {
var now = new Date().getTime(); // Time in milliseconds
if (now - lasttime < 1000) {
return;
} else {
lastTime = now;
}
// rest of function
}
根本不需要使用setTimeout。下面的答案与其他答案类似,但使用闭包来记住函数的最后一次运行时间,而不是全局变量。
var myFunction = function() {
var lastTime = new Date();
return function() {
var now = new Date();
if ((now - lastTime) < 1000) return;
lastTime = now;
/* do stuff */
};
}());
我认为最简单的解决方案是保持boolean
变量并在给定delay
后将其重置为true
。