创建一个有上限的循环定时器

Posted xiaopanpan0120

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建一个有上限的循环定时器相关的知识,希望对你有一定的参考价值。

[代码质量差][英语质量差]见笑了

今天为了实现一个“取延时差异的资源并会提示超时”的功能时有一个地方想分享出来

创建一个有上限的循环定时器

/**
 * 创建有上限时钟
 * @param  int   upperlimit       上限次数
 * @param  int   cycle            间隔时间
 * @param  Function callback         回调函数
 * @param  Function   completeCallback 执行完毕后调用的函数
 * @return Object                    返回一个时钟对象
 */
function createUpperLimitTime(_upperlimit ,cycle ,callback ,completeCallback)
    var successindex = 0;
    var timeobj;
    var upperlimit=_upperlimit;
    // 先看到了没再执行
    console.log("定时器开始");
    console.log(upperlimit);
    var extendCallback = function()
        if (successindex >= upperlimit)
            clearTimeout(timeobj);
            completeCallback();
        else 
            callback();
            successindex++;
        
    
    timeobj = window.setInterval(extendCallback ,cycle);
    return timeobj;// 返回这个时钟对象,可以作用于终止


createUpperLimitTime(
5 ,1000 ,function() // 测试 console.log(1); ,function() console.log(2); );

 

我在做一个项目时需要做到定时POST某个资源的差异实现差异获取,但是自带的循环定时器有点不理想

上面的completeCallback回调的作用就是为了识别“超时”问题

以上是关于创建一个有上限的循环定时器的主要内容,如果未能解决你的问题,请参考以下文章

在不开启事件循环的线程中使用QTimer(QThread::run函数自带事件循环,在构造函数里创建线程,是一种很有意思的线程用法) good

jmeter-获取系统最大并发数

绘制一个循环定时器(AndEngine)

redis 删除策略

redis 删除策略

使用 Windows 消息循环的回调实现