16 lines
		
	
	
		
			302 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			16 lines
		
	
	
		
			302 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | 'use strict'; | ||
|  | module.exports = (promise, onFinally) => { | ||
|  | 	onFinally = onFinally || (() => {}); | ||
|  | 
 | ||
|  | 	return promise.then( | ||
|  | 		val => new Promise(resolve => { | ||
|  | 			resolve(onFinally()); | ||
|  | 		}).then(() => val), | ||
|  | 		err => new Promise(resolve => { | ||
|  | 			resolve(onFinally()); | ||
|  | 		}).then(() => { | ||
|  | 			throw err; | ||
|  | 		}) | ||
|  | 	); | ||
|  | }; |