black-horse-cli
Version:
62 lines (50 loc) • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useTimeoutFn = useTimeoutFn;
exports.useTimeoutRef = useTimeoutRef;
require("core-js/modules/es.error.cause.js");
var _vue = require("vue");
var _is = require("../is");
var _core = require("@vueuse/core");
function useTimeoutFn(handle, wait) {
if (!(0, _is.isFunction)(handle)) {
throw new Error('handle is not Function!');
}
var _useTimeoutRef = useTimeoutRef(wait),
readyRef = _useTimeoutRef.readyRef,
stop = _useTimeoutRef.stop,
start = _useTimeoutRef.start;
(0, _vue.watch)(readyRef, function (maturity) {
maturity && handle();
}, {
immediate: false
});
return {
readyRef: readyRef,
stop: stop,
start: start
};
}
function useTimeoutRef(wait) {
var readyRef = (0, _vue.ref)(false);
var timer;
function stop() {
readyRef.value = false;
timer && window.clearTimeout(timer);
}
function start() {
stop();
timer = setTimeout(function () {
readyRef.value = true;
}, wait);
}
start();
(0, _core.tryOnUnmounted)(stop);
return {
readyRef: readyRef,
stop: stop,
start: start
};
}