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.
		
		
		
		
		
			
		
			
				
					21 lines
				
				763 B
			
		
		
			
		
	
	
					21 lines
				
				763 B
			| 
								 
											3 years ago
										 
									 | 
							
								// https://github.com/tc39/proposal-promise-finally
							 | 
						||
| 
								 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								var $export = require('./_export');
							 | 
						||
| 
								 | 
							
								var core = require('./_core');
							 | 
						||
| 
								 | 
							
								var global = require('./_global');
							 | 
						||
| 
								 | 
							
								var speciesConstructor = require('./_species-constructor');
							 | 
						||
| 
								 | 
							
								var promiseResolve = require('./_promise-resolve');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {
							 | 
						||
| 
								 | 
							
								  var C = speciesConstructor(this, core.Promise || global.Promise);
							 | 
						||
| 
								 | 
							
								  var isFunction = typeof onFinally == 'function';
							 | 
						||
| 
								 | 
							
								  return this.then(
							 | 
						||
| 
								 | 
							
								    isFunction ? function (x) {
							 | 
						||
| 
								 | 
							
								      return promiseResolve(C, onFinally()).then(function () { return x; });
							 | 
						||
| 
								 | 
							
								    } : onFinally,
							 | 
						||
| 
								 | 
							
								    isFunction ? function (e) {
							 | 
						||
| 
								 | 
							
								      return promiseResolve(C, onFinally()).then(function () { throw e; });
							 | 
						||
| 
								 | 
							
								    } : onFinally
							 | 
						||
| 
								 | 
							
								  );
							 | 
						||
| 
								 | 
							
								} });
							 |