1. 创建一个函数poll,它接受两个参数checkStatus[函数],callback[函数]。 2. poll会调用checkStatus,checkStatus返回true或者false。 3. 如果checkStatus返回true,调用callback并结束 4. 如果checkStatus返回false,1.5秒后继续调用checkStatus,如果还是返回false,1.5×2秒后继续调用checkStatus,还是false的话,1.5×3秒后继续调用,以此类推。 5. 不可以使用全局变量。
代码语言:javascript复制function poll(checkStatus, callback){
let time = 0;
let timer = null;
function dd(){
console.log(date())
let status = checkStatus();
if(status){
clearTimeout(timer);
return callback();
}
time ;
timer = setTimeout(()=>{
dd(checkStatus, callback);
}, time * 1500);
}
return dd;
}
function a(){return Math.random()>0.5}
function b(){console.log('over')}
function date(){
let d = new Date();
return `${d.getMinutes()}:${d.getSeconds()}`
}
poll(a,b)();