Javascript自旋隔段时间执行一段代码,直到得到指定的结果或达到最大次数才结束。
一.调用
1.最大自旋100次,每次间隔1秒。在满足条件时无论是否达到最大自旋次数,都会终止自选。
intervalResult(100,1000,function(){
if(一个表达式){
return true;
}
return false;
});
2.最大自旋100次,每次间隔1秒(不指定)
。在满足条件时无论是否达到最大自旋次数,都会终止自选。
intervalResult(100,function(){
if(一个表达式){
return true;
}
return false;
});
2.最大自旋20次(不指定)
,每次间隔1秒(不指定)
。在满足条件时无论是否达到最大自旋次数,都会终止自选。
intervalResult(function(){
if(一个表达式){
return true;
}
return false;
});
二.方法
const intervalResult=function(maxCount,time,flgBool,loopFn){
if(typeof maxCount=="function"){
loopFn=time;
flgBool=maxCount;
time=1000;
maxCount=20;
}
else if(typeof time=="function"){
loopFn=flgBool;
flgBool=time;
time=1000;
}
if(typeof flgBool!="function"){
flgBool=function(){
return false;
}
}
var i=0;
var invSet=setInterval(function(){
i++;
if(i>maxCount||flgBool(i)){
clearInterval(invSet);
return;
}
if(typeof loopFn=="function"){
loopFn();
}
},time);
}