import { ref, unref } from 'vue'; export function useLockFn

(fn: (...args: P) => Promise) { 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; } }; }