@fle-ui/plus-goods-detail-drawer
Version:
@fle-ui/plus-goods-detail-drawer
21 lines • 658 B
JavaScript
import { useCallback, useRef } from 'react';
/**
* 防抖 Hook
* @param callback 要防抖的回调函数
* @param delay 延迟时间(毫秒)
* @returns 防抖后的函数
*/
export var useDebounce = function useDebounce(callback, delay) {
var timeoutRef = useRef(null);
return 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]);
};