21 lines
		
	
	
		
			763 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			763 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// 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
 | 
						|
  );
 | 
						|
} });
 |