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.
		
		
		
		
		
			
		
			
				
					
					
						
							29 lines
						
					
					
						
							497 B
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							29 lines
						
					
					
						
							497 B
						
					
					
				
								// API
							 | 
						|
								module.exports = abort;
							 | 
						|
								
							 | 
						|
								/**
							 | 
						|
								 * Aborts leftover active jobs
							 | 
						|
								 *
							 | 
						|
								 * @param {object} state - current state object
							 | 
						|
								 */
							 | 
						|
								function abort(state)
							 | 
						|
								{
							 | 
						|
								  Object.keys(state.jobs).forEach(clean.bind(state));
							 | 
						|
								
							 | 
						|
								  // reset leftover jobs
							 | 
						|
								  state.jobs = {};
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								/**
							 | 
						|
								 * Cleans up leftover job by invoking abort function for the provided job id
							 | 
						|
								 *
							 | 
						|
								 * @this  state
							 | 
						|
								 * @param {string|number} key - job id to abort
							 | 
						|
								 */
							 | 
						|
								function clean(key)
							 | 
						|
								{
							 | 
						|
								  if (typeof this.jobs[key] == 'function')
							 | 
						|
								  {
							 | 
						|
								    this.jobs[key]();
							 | 
						|
								  }
							 | 
						|
								}
							 | 
						|
								
							 |