我知道如何执行一次函数,这不是问题
首先,这是我的代码
var executed1 = false;
var executed2 = false;
var executed3 = false;
function myFunction()
{
if(-------------------)
{
//Verification - If the others conditions have ever been called
if (executed2)
{
executed2 = false;
}
else if(executed3)
{
executed3 = false;
}
//Verification - If the condition have ever been called during this condition = true;
if (!execution1)
{
execution1 = true;
//My code here ...
}
}
else if (-------------------)
{
if (executed1)
{
executed1 = false;
}
else if(executed3)
{
executed3 = false;
}
if (!execution2)
{
execution2 = true;
//My code here ...
}
}
else if (-------------------)
{
//Same thing with execution3
}
}
setInterval("myFunction()", 10000);
我将以第一个条件为例
(1)如果条件为true,我想执行我的代码,但是只有第一次:如您所见,我的函数每10s执行一次。只要第一个条件为真,则不应追加任何内容。
如果第一个条件变为false
,第二个条件true
,则过程相同。
但现在,如果第一个条件是true
和false
,我希望如果条件再次变为true
,它将是与(1)
有没有办法阅读更干净的代码来做到这一点? 因为,现在只有3个条件,但可能有100个。
答案 0 :(得分:0)
使用clearInterval
停止执行您的函数,如果无法检查条件,则使用
var fid = setInterval(myFunction, 1000);
var cond = [false,false,false];
function myFunction()
{
console.log(cond.join());
// check conditions in some way here (e.g. every is true)
if(cond.every(x=>x)) {
clearInterval(fid);
console.log('Execute your code and stop');
}
// change conditions (example)
cond[2]=cond[1];
cond[1]=cond[0];
cond[0]=true;
}