JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2551
  • Score
    100M100P100Q126613F
  • License MIT

A very simple way to throttle a function

Package Exports

  • stifle

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (stifle) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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