Skip to content

imsasa/ithrottle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

what's this

这是一个简单的javascript 工具库,可以用来方便你控制函数执行的频率;

how to use

npm i https://github.com/imsasa/ithrottle.git

throttle-以固定的频率执行函数

使函数原本不定时、频繁地调用转成按固定频率执行。

let throttle= require("ithrottle").throttle;
let foo     = function () {
    console.log("foo");
};
/**
 * 函数foo的调用间隔时间为2000ms
 */
let wrapFoo = throttle(foo, 2000);
// wrapFoo每200ms会被调用一次,函数foo实际每2S才执行一次
setInterval( ()=>wrapFoo(), 200);

debounce-延迟执行函数

延迟执行函数,在指定的延迟时间内,再次调用函数会重新计算延迟时间。

let debounce= require("ithrottle").debounce;
let bar=function(){
  console.log("bar");
  console.log(Date.now()-startTime)
};
/**
 * 函数bar延迟2000ms执行
 */
let wrapBar=debounce(bar,2000);
let startTime=Date.now();
wrapBar();
/**
 * 1000ms后调用,bar会再等待2000毫秒执行
 */
setTimeout(wrapBar,1000); 

API

throttle

arguments

  • opt {Object|Number}
    • {boolean} immediate=true ,为true则首次调用不delay;
    • {boolean} leave=false ,为true则忽略指定延迟时间内的调用;

return

  • {function} clear, 取消还末执行的函数。

debounce

与throttle相同

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published