27 lines
		
	
	
		
			441 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			27 lines
		
	
	
		
			441 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | module.exports = defer; | ||
|  | 
 | ||
|  | /** | ||
|  |  * Runs provided function on next iteration of the event loop | ||
|  |  * | ||
|  |  * @param {function} fn - function to run | ||
|  |  */ | ||
|  | function defer(fn) | ||
|  | { | ||
|  |   var nextTick = typeof setImmediate == 'function' | ||
|  |     ? setImmediate | ||
|  |     : ( | ||
|  |       typeof process == 'object' && typeof process.nextTick == 'function' | ||
|  |       ? process.nextTick | ||
|  |       : null | ||
|  |     ); | ||
|  | 
 | ||
|  |   if (nextTick) | ||
|  |   { | ||
|  |     nextTick(fn); | ||
|  |   } | ||
|  |   else | ||
|  |   { | ||
|  |     setTimeout(fn, 0); | ||
|  |   } | ||
|  | } |