Some things that are "better" with this BetterPromise implementation:
-
BetterPromise # unthen(..)/BetterPromise # uncatch(..)/BetterPromise # unfinally(..)allows you to unregister a fulfillment or rejection handler that you previously registered on a promise viathen(..)orcatch(..), or unregister a resolution handler that you previously registered on a promise viafinally(..).NOTE: This seems to be the majority use-case for why many like/want "promise cancelation" -- IOW, often what you want is to just stop observing a promise's resolution, not actually forcibly cancel the operation is comes from.
var p = new BetterPromise(function(res){ setTimeout(function(){ res(42); },100); });