stifle

1.1.1 • Public • Published

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

Readme

Keywords

none

Package Sidebar

Install

npm i stifle

Weekly Downloads

5,607

Version

1.1.1

License

MIT

Unpacked Size

5.25 kB

Total Files

5

Last publish

Collaborators

  • twobitfool