setTimeout与循环闭包

删除进度条.png

最近想做一个删除进度条,每隔1秒删除一条,传给前端的{{data}}。
开始的时候这么写

for (var i=0; i<this.proList.length+1; i++) {
        setTimeout(()=>{
            this.proData=Math.ceil(100*i/this.proList.length);//业务需求
            this.proList1=this.proList[k];//业务需求
          }, 1000 );
      }

最后这样写可以实现

for (var i=0; i<this.proList.length+1; i++) {
        let k =i;
        setTimeout(()=>{
            this.proData=Math.ceil(100*k/this.proList.length);//业务需求
            this.proList1=this.proList[k];//业务需求
          }, 1000*k );
      }

原理可以参考这篇文章:https://segmentfault.com/a/1190000009711065
倒计时

reLoginCountDown () {
  this.reLoginTime = 3
  let time = setInterval(() => {
    this.reLoginTime--
    if (this.reLoginTime === 0) {
      this.$router.push('/auth/login')
      clearInterval(time)
    }
  }, 1000)
},
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我在闭包一文中的结尾留下了一个关于setTimeout与循环闭包的思考题。 利用闭包,修改下面的代码,让循环输出的...
    这波能反杀阅读 41,769评论 117 300
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,256评论 25 709
  • 我听见,该有很多美妙的音乐,很多天籁之音,很多你对我说的话,很多惊震之音,还有我的心声~ 我听见,音乐之歌 说到音...
    山水之滴阅读 3,674评论 1 1
  • 你像黎明,有婴儿样的脸庞,还有凝脂样的皮肤。一切都那么鲜嫩,一切都那么丰美,在我的眼前轻轻降落,浮现出成片...
    冰夫阅读 1,709评论 0 0
  • 今天学校的主题是pajama drive,以睡觉前的活动为主题的donation 捐献。学校每个月的主题都不一样。...
    楚楚和小丸子阅读 1,215评论 0 0