UNPKG

create-iking-admin

Version:

金合技术中台脚手架

18 lines (16 loc) 442 B
import { ref, unref } from 'vue'; export function useLockFn<P extends any[] = any[], V = any>(fn: (...args: P) => Promise<V>) { const lockRef = ref(false); return async function (...args: P) { if (unref(lockRef)) return; lockRef.value = true; try { const ret = await fn(...args); lockRef.value = false; return ret; } catch (e) { lockRef.value = false; throw e; } }; }