public function always(callable $onFulfilledOrRejected)
{
return $this->then(null, function ($reason) use($onFulfilledOrRejected) {
return resolve($onFulfilledOrRejected())->then(function () use($reason) {
return new RejectedPromise($reason);
});
});
}