setTimeout(延时器),运行一次就停止
var t = setTimeout(() => {
function()-----需要进行的函数
}, 50) -- 50毫秒后触发
setInterval(定时器),循环运行,直到被清除
var t = setInterval(async () => {
const { data: res } = await getStat()
this.setTimeV = res
console.log(res)
if (res == 11) {
this.$router.push('/ipCompleteTest')
clearInterval(t) --------清除
} else {
function()
}
}, 5000) ----每隔5000ms触发一次
setInterval清除有的时候可能失效:解决办法,把var t换成this.setTime
data(){
return{
setTime
}
}
beforeDestroy: function() {
this.$once('hook:beforeDestroy', () => {
console.log('清除定时器')
clearInterval(this.setTime)
})
}
有种无法停止的setInterval;大概原因是setInterval所在的function()被调用一次以上,修改只调用一次就好,cleaeInterval只清除一个