public function then(callable $onFulfilled = null, callable $onRejected = null) { if (null === $onFulfilled) { return $this; } try { return new self($onFulfilled($this->response)); } catch (Exception $e) { return new HttpRejectedPromise($e); } }