Releases: devrelm/frame-throttle
Releases · devrelm/frame-throttle
v3.0.0
Added
- Throttled listeners can now be canceled (useful for cleanup):
var throttledListener = throttle(listener); window.addEventListener('resize', throttledListener); submitButton.addEventListener('click', () => { window.removeEventListener('resize', throttledListener); // prevent any queued calls from executing on the next animation frame: throttledListener.cancel(); })
Changed
- Updated types to use generics;
throttle
will now return a function
of the same type it was passed. - frame-throttle now runs in strict mode
Fixed
-
Binding a throttled listener with
.bind()
resulted in both the bound and
unbound listeners being throttled together.For instance, in the following scenario,
listener
was only being called once:var throttledListener = throttle(listener); var boundThrottledListener1 = throttledListener.bind(someContext); var boundThrottledListener2 = throttledListener.bind(anotherContext); throttledListener(); boundThrottledListener1(); boundThrottledListener2();
v2.0.1
v2.0.0
Added
frame-throttle.d.ts
- a TypeScript declaration file forframe-throttle.js
Changed
- Converted project to TypeScript
- Renamed main file from
throttle.js
toframe-throttle.js
- Moved main file from base directory to
dist
directory throttle
method is now a module member rather than the entire module.
This means that you must now use:
// Correct var throttle = require('frame-throttle').throttle;
rather than
// Wrong! var throttle = require('frame-throttle');
- The throttled listener now passes its
this
context to the callback - The callback is now passed the arguments for the most recent call to the
throttled method rather than being passed the oldest arguments.
This only happens whenrequestAnimationFrame
is present.
Known Issues
package.json
was misconfigured and didn't include the correct files
v1.1.0
Fixed
- When requestAnimationFrame does not exist, call the callback immediately
and ignore further events for 1/60th of a second. Old behavior was to wait
1/60th of a second before calling callback.
Misc
- Additional documentation in README
- coveralls.io and travis badges in README
- additional tests to cover
setTimeout
use case