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);
}