@fle-ui/plus-goods-detail-drawer
Version:
@fle-ui/plus-goods-detail-drawer
27 lines (26 loc) • 793 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useDebounce = void 0;
var _react = require("react");
/**
* 防抖 Hook
* @param callback 要防抖的回调函数
* @param delay 延迟时间(毫秒)
* @returns 防抖后的函数
*/
var useDebounce = exports.useDebounce = function useDebounce(callback, delay) {
var timeoutRef = (0, _react.useRef)(null);
return (0, _react.useCallback)(function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (timeoutRef.current) {
clearTimeout(timeoutRef.current);
}
timeoutRef.current = setTimeout(function () {
callback.apply(void 0, args);
}, delay);
}, [callback, delay]);
};