You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							43 lines
						
					
					
						
							1.0 KiB
						
					
					
				
			
		
		
	
	
							43 lines
						
					
					
						
							1.0 KiB
						
					
					
				| var toInteger = require('./toInteger');
 | |
| 
 | |
| /** Error message constants. */
 | |
| var FUNC_ERROR_TEXT = 'Expected a function';
 | |
| 
 | |
| /**
 | |
|  * The opposite of `_.before`; this method creates a function that invokes
 | |
|  * `func` once it's called `n` or more times.
 | |
|  *
 | |
|  * @static
 | |
|  * @memberOf _
 | |
|  * @since 0.1.0
 | |
|  * @category Function
 | |
|  * @param {number} n The number of calls before `func` is invoked.
 | |
|  * @param {Function} func The function to restrict.
 | |
|  * @returns {Function} Returns the new restricted function.
 | |
|  * @example
 | |
|  *
 | |
|  * var saves = ['profile', 'settings'];
 | |
|  *
 | |
|  * var done = _.after(saves.length, function() {
 | |
|  *   console.log('done saving!');
 | |
|  * });
 | |
|  *
 | |
|  * _.forEach(saves, function(type) {
 | |
|  *   asyncSave({ 'type': type, 'complete': done });
 | |
|  * });
 | |
|  * // => Logs 'done saving!' after the two async saves have completed.
 | |
|  */
 | |
| function after(n, func) {
 | |
|   if (typeof func != 'function') {
 | |
|     throw new TypeError(FUNC_ERROR_TEXT);
 | |
|   }
 | |
|   n = toInteger(n);
 | |
|   return function() {
 | |
|     if (--n < 1) {
 | |
|       return func.apply(this, arguments);
 | |
|     }
 | |
|   };
 | |
| }
 | |
| 
 | |
| module.exports = after;
 |