![vue中使用setTimeout vue中使用setTimeout](https://image.shishitao.com:8440/aHR0cHM6Ly9ia3FzaW1nLmlrYWZhbi5jb20vdXBsb2FkL2NoYXRncHQtcy5wbmc%2FIQ%3D%3D.png?!?w=700&webp=1)
在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属性表示当前这个组件是否被销毁