/**
* fn:回调函数,处理结果
* time:多长时间执行1次
* limitNum:达到临界值是,清除定时器
*/
function wrapSetTimeOut(fn,time,limitNum){
var count = 0;
var timeId;
return function(){
if(!timeId){
timeId = setTimeout(function(){
console.log(count);
if(count>limitNum){
clearTimeout(timeId);
fn(count);
}else{
count++;
timeId = setTimeout(arguments.callee,time);
}
},time);
}else{
timeId = setTimeout(arguments.callee,time);
}
}
}
var execute = wrapSetTimeOut(function(result){
console.log("====="+result);
},1000,10);
execute();
执行结果为: