js中的for循环结束后设置执行事件( 与setInterval和setTimeout一起用)

在js for循环中的定时器。正常来讲循环多少次就会触发多个定时

例如 

 var time
    for (var i=0;i<3;i++){
        
        time=setTimeout(()=>{
            console.log('定时器')
        },100)
    }

  这样会打印出3次定时器

 

当我只想在for循环最后一次结束后才触发一次事件,

代码

  var time
    for (var i=0;i<3;i++){
        clearTimeout(time)
        time=setTimeout(()=>{
            console.log('定时器')
        },100)
    }

  主要是在cleraTimeout对对象没有要求的前提下作用

这样打印出来的只有1次定期器,不过要注意的是 setTimeout赋值的对象是全局的,不然就不能覆盖到前面一个

setInterval同理

posted @ 2019-02-27 10:33  mozhaocong  阅读(7052)  评论(0)    收藏  举报