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.
		
		
		
		
		
			
		
			
				
					30 lines
				
				533 B
			
		
		
			
		
	
	
					30 lines
				
				533 B
			| 
											3 years ago
										 | var abort = require('./abort.js') | ||
|  |   , async = require('./async.js') | ||
|  |   ; | ||
|  | 
 | ||
|  | // API
 | ||
|  | module.exports = terminator; | ||
|  | 
 | ||
|  | /** | ||
|  |  * Terminates jobs in the attached state context | ||
|  |  * | ||
|  |  * @this  AsyncKitState# | ||
|  |  * @param {function} callback - final callback to invoke after termination | ||
|  |  */ | ||
|  | function terminator(callback) | ||
|  | { | ||
|  |   if (!Object.keys(this.jobs).length) | ||
|  |   { | ||
|  |     return; | ||
|  |   } | ||
|  | 
 | ||
|  |   // fast forward iteration index
 | ||
|  |   this.index = this.size; | ||
|  | 
 | ||
|  |   // abort jobs
 | ||
|  |   abort(this); | ||
|  | 
 | ||
|  |   // send back results we have so far
 | ||
|  |   async(callback)(null, this.results); | ||
|  | } |