从无法访问的项目Fork
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
import { Ref, ref } from 'vue';
import { tryOnUnmounted } from '/@/utils/helper/vueHelper';
export type TimeoutResult = [Ref<boolean>, Fn<void>, Fn<void>];
export function useTimeoutRef(wait: number): TimeoutResult { const readyRef = ref(false); let timer: ReturnType<typeof setTimeout> | undefined; function clear(): void { readyRef.value = false; timer && window.clearTimeout(timer); } function openTimer(): void { clear(); timer = setTimeout(() => { readyRef.value = true; }, wait); } openTimer(); tryOnUnmounted(clear); return [readyRef, clear, openTimer]; }