要求:
1、poll方法接收两个函数,checkStatus和callback,其中checkStatus返回值是布尔类型,true或false,callback是回调函数。
2、如果checkStatus返回true,执行callback,否则继续执行checkStatus但是需要延时。
3、轮询时间需要不断增加,第一次执行checkStatus返回false之后,需要1000ms再执行第二次,以后每一次的时间都要增加1.5倍。
4、不得使用全局变量。
方法一:
function poll(checkStatus, callback) {
// Implement your solution here
const func = (checkStatus, callback,time)=>{
if(checkStatus()){
callback()
}else{
setTimeout(()=>{
console.log(time)
func(checkStatus,callback,time*1.5);
},time)
}
}
func(checkStatus,callback,1000)
}
function checkStatus(){
return false;
}
function callback(){
console.log('callback');
}
poll(checkStatus,callback);
方法二:
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);
Comments | NOTHING