UNPKG

quasar

Version:

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

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