UNPKG

quasar

Version:

Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time

37 lines (28 loc) 673 B
import { onDeactivated, onBeforeUnmount, getCurrentInstance } from 'vue' import { vmIsDestroyed } from '../../utils/private.vm/vm.js' /* * Usage: * registerInterval(fn[, delay]) * removeInterval() */ export default function () { let timer = null const vm = getCurrentInstance() function removeInterval () { if (timer !== null) { clearInterval(timer) timer = null } } onDeactivated(removeInterval) onBeforeUnmount(removeInterval) return { removeInterval, registerInterval (fn, delay) { removeInterval(timer) if (vmIsDestroyed(vm) === false) { timer = setInterval(fn, delay) } } } }