element-plus
Version:
A Component Library for Vue3.0
21 lines (16 loc) • 430 B
text/typescript
import { onBeforeUnmount } from 'vue'
export default function () {
let timeoutHandle: ReturnType<typeof setTimeout>
onBeforeUnmount(() => {
clearTimeout(timeoutHandle)
})
return {
registerTimeout: (fn: (...args: any[]) => unknown, delay: number) => {
clearTimeout(timeoutHandle)
timeoutHandle = setTimeout(fn, delay)
},
cancelTimeout: () => {
clearTimeout(timeoutHandle)
},
}
}