From 0d574a26c0dfe47959e6732c7907117a2ebe9ff4 Mon Sep 17 00:00:00 2001 From: liuqiang1357 Date: Thu, 7 Jun 2018 21:55:13 +0800 Subject: [PATCH] Fix Promise.finally Non-standard behavior --- packages/fbjs/src/__forks__/Promise.native.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/fbjs/src/__forks__/Promise.native.js b/packages/fbjs/src/__forks__/Promise.native.js index 00ba5059..7f26bf48 100644 --- a/packages/fbjs/src/__forks__/Promise.native.js +++ b/packages/fbjs/src/__forks__/Promise.native.js @@ -18,8 +18,13 @@ require('promise/setimmediate/done'); /** * Handle either fulfillment or rejection with the same callback. */ -Promise.prototype.finally = function(onSettled) { - return this.then(onSettled, onSettled); -}; +Promise.prototype.finally = function(callback) { + return this.then( + value => Promise.resolve(callback()).then(() => value), + reason => Promise.resolve(callback()).then(() => { + throw reason; + }) + ); +} module.exports = Promise;