今天去面试遇到的一道题,想了好久没想出来,被鄙视了。
要求:
1、poll方法接收两个函数,checkStatus和callback,其中checkStatus返回值是布尔类型,true或false,callback是回调函数。
2、如果checkStatus返回true,执行callback,否则继续执行checkStatus但是需要延时。
3、轮询时间需要不断增加,第一次执行checkStatus返回false之后,需要1000ms再执行第二次,以后每一次的时间都要增加1.5倍。
4、不得使用全局变量。
function time1(){
var t = 1000;
function time2(){
t *= 1.5;
return t;
}
return time2;
}
var time3 = time1();
function poll(checkStatus,callback){
if(checkStatus()){
callback();
}else{
setTimeout(function(){
console.log(new Date());
poll(checkStatus,callback);
},time3());
}
}
function checkStatus(){
return 0;
}
function callback(){
console.log('callback');
}
poll(checkStatus,callback);
我能想到的就是这个,但是还是用了全局变量,,,求解!!!
三国纷争
慕码人2483693
慕桂英3389331
相关分类