vue $bus 和 settimeout 实现setinterval

main.js 实现 用settimeout 实现setinterval
window.$bus = new Vue()

window.setTimeToInterval = function (delay) {
  if (window.intervalTimeout) {
    clearTimeout(window.intervalTimeout)
    window.intervalTimeout = null
  }
  
  window.intervalTimeout = setTimeout(() => {
    log('定时请求时间为:' + delay)
    this.$bus.$emit('setIntervalGet')
    this.setTimeToInterval(delay)
  }, delay)
}
页面调用
mounted 的时候 加监听
    window.$bus.$on('setIntervalGet', function () {
      // do something
    })

destroyed 销毁监听
window.$bus.$off('setIntervalGet')

// 方法调用
window.setTimeToInterval(10)

 

posted @ 2023-02-22 13:18  杨不凡  阅读(37)  评论(0编辑  收藏  举报