Skip to content

twobitfool/stifle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

stifle

Wrap a function, so it is only called (at most) once every X milliseconds.

    var stifle = require('stifle')

    // A silly little clock
    function tellTime () {
      console.log('The time is now ' + new Date())
    }

    // Only show the time once per second
    var secondHand = stifle(tellTime, 1000)

    // Call it like crazy, but it will only fire once per second
    var interval = setInterval(secondHand, 10)

Cancellation

The wrapped function comes with a cancel method to kill any pending future invocations -- useful for shutting it down when a page or component is being unloaded.

    // Stop calling the secondHand
    clearInterval(interval)

    // Cancel pending calls, or else it will fire one more time
    secondHand.cancel()

No Extras

To keep it fast and simple, stifle does not support:

  • passing parameters
  • returning values
  • recursive invocation
  • "flushing" pending invocations
  • leading/trailing options

If you want those fancy features, check out lodash.throttle

About

A very simple way to throttle a function (in Javascript)

Resources

License

Stars

Watchers

Forks

Packages

No packages published