linkmore-design
Version:
🌈 🚀lm组件库。🚀
19 lines (17 loc) • 627 B
JavaScript
import { useCallback, useEffect } from 'react';
import { debounce } from 'lodash';
// 延迟/防抖加载函数, 默认延迟200ms
export var useDelayedFn = function useDelayedFn() {
var wait = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 200;
var delayedQuery = useCallback(debounce(function (fn) {
typeof fn === 'function' ? fn === null || fn === void 0 ? void 0 : fn() : fn;
}, wait), []);
// 防止异步任务数导致的内存泄漏
useEffect(function () {
return function () {
delayedQuery.cancel();
};
}, []);
return delayedQuery;
};
export default useDelayedFn;