setInterval 动态时间控制轮询频率

242次阅读
没有评论

前端有一些定时轮询需求时候,setInterval(func(), t) 里面的这个 t 会发现,动态传输时候,并不会生效,实际效果是创建了多个不同的轮询方法。

最后造成多个时间间隔同时在运行,控制台一下子炸了锅!

那么如何更准确的控制定时频率,其实有一个很关键的就是,如果要动态定时执行,那必须将上一次的对象取消掉,然后继续创建一个新的对象,这样循环执行,取消,新建,执行,取消,新建……曲线救国实现定时任务的动态频率,下面给个演示代码:

    var t = 500;
    var set1 = setInterval (fn, t);
    function fn() {console.log('test');
        t -= 10;
        clearInterval(set1);
        if (t> 0) {set1 = setInterval(fn, t);
        }
    }

加入官方交流QQ群:778957856
post-qrcode
 
clark
版权声明:本站原创文章,由 clark 2022-06-30发表,共计341字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码