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
				
				497 B
			
		
		
			
		
	
	
					30 lines
				
				497 B
			| 
								 
											3 years ago
										 
									 | 
							
								// 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]();
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 |