Files
PC-mj/.output/server/node_modules/axios/lib/helpers/throttle.js
DESKTOP-RQ919RC\Pc 56174d3bca build: 添加构建输出文件及依赖项
包含构建生成的静态资源文件、JavaScript模块及服务器端依赖项。新增了favicon.ico、多张PNG图标图片、Vue相关模块文件、axios库文件、错误处理中间件及样式文件等。这些文件是项目构建后的输出结果,用于生产环境部署。同时更新了构建配置和版本信息。
2025-11-19 14:25:58 +08:00

45 lines
861 B
JavaScript

/**
* Throttle decorator
* @param {Function} fn
* @param {Number} freq
* @return {Function}
*/
function throttle(fn, freq) {
let timestamp = 0;
let threshold = 1000 / freq;
let lastArgs;
let timer;
const invoke = (args, now = Date.now()) => {
timestamp = now;
lastArgs = null;
if (timer) {
clearTimeout(timer);
timer = null;
}
fn.apply(null, args);
}
const throttled = (...args) => {
const now = Date.now();
const passed = now - timestamp;
if ( passed >= threshold) {
invoke(args, now);
} else {
lastArgs = args;
if (!timer) {
timer = setTimeout(() => {
timer = null;
invoke(lastArgs)
}, threshold - passed);
}
}
}
const flush = () => lastArgs && invoke(lastArgs);
return [throttled, flush];
}
export default throttle;