csdnsynchexo
Version:
支持csdn/博客园/掘金/segmentfault/腾讯云加社区等平台一键迁移hexo
19 lines (18 loc) • 538 B
JavaScript
const wait = (delay) => new Promise((res) => {
setTimeout(() => {
res();
}, delay);
});
export const throttle = (delay = 500) => {
let last = 0;
return function (target, propertyKey, descriptor) {
const origin = descriptor?.value;
descriptor.value = async function (...args) {
const now = Date.now();
let rest = Math.max(0, delay - (now - last));
await wait(rest);
last = Date.now();
return origin.apply(this, args);
};
};
};