常见的轮询方式:
window.timer = setInterval(()=>{
this.promiseFun()
},1000)
大家一般都会使用setInterval,但要注意单纯使用它可能导致页面卡死。
原因是setInterval不会清除定时器队列,每重复执行1次都会导致定时器叠加,卡死。但是setTimeout是自带清除定时器的所以可以叠加使用。
更好的轮询方式
window.timer = setInterval(() => {
setTimeout(this.promiseFun(), 0)
}, 1000)
结束轮询
在需要结束轮询的时候,如果是vue可以在beforeDestroy生命周期函数中销毁定时器
clearInterval(timer)