diff --git a/CHANGELOG.md b/CHANGELOG.md index fafc207..1618b5d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change Log +## 1.2.2 + +### Fixed + +- Fix accepting `Throwable` as rejection reason of a promise + ## 1.2.1 ### Added diff --git a/src/FulfilledPromise.php b/src/FulfilledPromise.php index c9158e7..45c4551 100644 --- a/src/FulfilledPromise.php +++ b/src/FulfilledPromise.php @@ -37,8 +37,8 @@ public function then(callable $onFulfilled = null, callable $onRejected = null) try { return new self($onFulfilled($this->result)); - } catch (\Exception $e) { - return new RejectedPromise($e); + } catch (\Throwable $exception) { + return new RejectedPromise($exception); } } diff --git a/src/RejectedPromise.php b/src/RejectedPromise.php index a500048..c093a55 100644 --- a/src/RejectedPromise.php +++ b/src/RejectedPromise.php @@ -14,11 +14,11 @@ final class RejectedPromise implements Promise { /** - * @var \Exception + * @var \Throwable */ private $exception; - public function __construct(\Exception $exception) + public function __construct(\Throwable $exception) { $this->exception = $exception; } @@ -34,8 +34,8 @@ public function then(callable $onFulfilled = null, callable $onRejected = null) try { return new FulfilledPromise($onRejected($this->exception)); - } catch (\Exception $e) { - return new self($e); + } catch (\Throwable $exception) { + return new self($exception); } }