70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
 | |
| # debounce
 | |
| 
 | |
|   Useful for implementing behavior that should only happen after a repeated
 | |
|   action has completed.
 | |
| 
 | |
| ## Installation
 | |
| 
 | |
|     $ component install component/debounce
 | |
| 
 | |
|   Or in node:
 | |
| 
 | |
|     $ npm install debounce
 | |
| 
 | |
| ## Example
 | |
| 
 | |
| ```js
 | |
| var debounce = require('debounce');
 | |
| window.onresize = debounce(resize, 200);
 | |
| 
 | |
| function resize(e) {
 | |
|   console.log('height', window.innerHeight);
 | |
|   console.log('width', window.innerWidth);
 | |
| }
 | |
| ```
 | |
| 
 | |
| To later clear the timer and cancel currently scheduled executions:
 | |
| ```
 | |
| window.onresize.clear();
 | |
| ```
 | |
| 
 | |
| To execute any pending invocations and reset the timer:
 | |
| ```
 | |
| window.onresize.flush();
 | |
| ```
 | |
| 
 | |
| Alternately, if using newer syntax:
 | |
| 
 | |
| ```js
 | |
| import { debounce } from "debounce";
 | |
| ```
 | |
| 
 | |
| ## API
 | |
| 
 | |
| ### debounce(fn, wait, [ immediate || false ])
 | |
| 
 | |
|   Creates and returns a new debounced version of the passed function that
 | |
|   will postpone its execution until after wait milliseconds have elapsed
 | |
|   since the last time it was invoked.
 | |
| 
 | |
|   Pass `true` for the `immediate` parameter to cause debounce to trigger
 | |
|   the function on the leading edge instead of the trailing edge of the wait
 | |
|   interval. Useful in circumstances like preventing accidental double-clicks
 | |
|   on a "submit" button from firing a second time.
 | |
| 
 | |
|   The debounced function returned has a property 'clear' that is a 
 | |
|   function that will clear any scheduled future executions of your function.
 | |
| 
 | |
|   The debounced function returned has a property 'flush' that is a 
 | |
|   function that will immediately execute the function if and only if execution is scheduled,
 | |
|   and reset the execution timer for subsequent invocations of the debounced
 | |
|   function.
 | |
| 
 | |
| ## License
 | |
| 
 | |
|   MIT
 | |
| 
 | |
|   Original implementation is from [`underscore.js`](http://underscorejs.org/)
 | |
|   which also has an MIT license.
 |