tav-ui
Version:
43 lines (38 loc) • 1.03 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var core = require('@vueuse/core');
var is = require('../../utils/is2.js');
function useTimeoutFn(handle, wait, native = false) {
if (!is.isFunction(handle))
throw new Error("handle is not Function!");
const { readyRef, stop, start } = useTimeoutRef(wait);
if (native) {
handle();
} else {
vue.watch(readyRef, (maturity) => {
maturity && handle();
}, { immediate: false });
}
return { readyRef, stop, start };
}
function useTimeoutRef(wait) {
const readyRef = vue.ref(false);
let timer;
function stop() {
readyRef.value = false;
timer && window.clearTimeout(timer);
}
function start() {
stop();
timer = setTimeout(() => {
readyRef.value = true;
}, wait);
}
start();
core.tryOnUnmounted(stop);
return { readyRef, stop, start };
}
exports.useTimeoutFn = useTimeoutFn;
exports.useTimeoutRef = useTimeoutRef;
//# sourceMappingURL=useTimeout2.js.map