这是一个时间递增的轮询函数


要求:
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);

声明:麋鹿与鲸鱼|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 这是一个时间递增的轮询函数


Carpe Diem and Do what I like