UNPKG

quasar

Version:

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

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