此代码不断重复,但我希望它在函数调用之后发生两次,然后在设置的时间段后使用setTimeout
。
function alertit() {
alert('code');
setTimeout(alertit, 200);
}
alertit();
答案 0 :(得分:3)
function alertit(callAgain) {
alert('code');
if (callAgain) setTimeout("alertit(false)", 200);
}
alertit(true);
答案 1 :(得分:2)
function alertit() {
alert('code');
}
alertit();
setTimeout(alertit, 200);
例如。
答案 2 :(得分:2)
你能试试吗
function alertit(){
// guard code
if ( alertit.times == 2 ) return ; // for 4 times, alertit.times == 4
alertit.times = alertit.times ? ++alertit.times: 1;
// your function logic goes here ..
alert( 'here function called ' + alertit.times );
setTimeout( alertit , 1000 );
}
alertit();
答案 3 :(得分:1)
您可以在此处应用条件逻辑。
var callfunc = true;
function alertit() {
alert('code');
if(callfunc == true)
setTimeout(function(){ callfunc = false; alertit();}, 200);
}
alertit();
答案 4 :(得分:1)
如果对setTimeout
的调用必须在内部:
function alertit() {
var f = function () {
alert('code');
}
f();
setTimeout(f, 200);
}
alertit();
答案 5 :(得分:1)
您可以使用两个标志来实现。 count将确保您的方法运行两次,执行标志只确保第一次设置超时。
var execute = true;
var count = 0;
function alertit() {
if (count < 2) {
alert('code');
if (execute) {
setTimeout(alertit, 200);
execute = false;
}
}
}
alertit();
我看到我给了一个类似于tangelo的答案,它在简单,简单的步骤中做同样的事情。
答案 6 :(得分:1)
如果您对更通用的方法感兴趣,可以设置如下内容:
function callMultipleTimes(func, count, delay) {
var key = setInterval(function(){
if (--count <= 0) {
clearInterval(key);
}
func();
}, delay);
}
function alertit() {
alert('code');
}
callMultipleTimes(alertit, 2, 200);
<强> FIDDLE 强>
答案 7 :(得分:0)
创建一个全局变量调用它_Count = 0 并在函数alertit()中执行if条件,如果(_Count&lt;&gt; 1)调用该函数,然后如果该编码为真,则递增变量并调用函数...