vue中使用setTimeout

在vue的函数中使用setTimeout

self.distroyTimeout = setTimeout(()=>{

  self.initData()

},1000)

 

这时清除setTimeout需要在destoryed周期中进行

destoryed(){

  window.clearTimeout(this.distroyTimeout)

}

 

但是这样做在逻辑复杂的情况下还是出现了没有关闭setTimeout的情况,以下是一种更好的解决方案

let self = this

if(self && self.distroyTimeout){

  setTimeout(()=>{

    if(self && self.distroyTimeout){

      self.initData()
    }
  },1000)

}

 

在这里distroyTimeout属性表示当前这个组件是否被销毁

posted on 2017-06-05 11:33  CNundefined  阅读(1542)  评论(0编辑  收藏  举报