diff options
| author | EoleDev <root@serverpc.home> | 2016-03-09 16:17:33 +0100 |
|---|---|---|
| committer | EoleDev <root@serverpc.home> | 2016-03-09 16:17:33 +0100 |
| commit | 2b8decb81faeb7928bcbfda84c6f33a003f707fd (patch) | |
| tree | 0e491d7ae2bf91347b1cf50d2c475625d8f659b4 /server/vendor/guzzlehttp/promises/src/Promise.php | |
| parent | b7ebe1272c1127df290535af2430622b28160bb0 (diff) | |
| parent | 03ef74d0cfe675a6e18a91f039182ca1b248d8f5 (diff) | |
Maj Library
Diffstat (limited to 'server/vendor/guzzlehttp/promises/src/Promise.php')
| -rw-r--r-- | server/vendor/guzzlehttp/promises/src/Promise.php | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/server/vendor/guzzlehttp/promises/src/Promise.php b/server/vendor/guzzlehttp/promises/src/Promise.php index c2cf969..86820b2 100644 --- a/server/vendor/guzzlehttp/promises/src/Promise.php +++ b/server/vendor/guzzlehttp/promises/src/Promise.php @@ -61,17 +61,19 @@ class Promise implements PromiseInterface { $this->waitIfPending(); - if (!$unwrap) { - return null; - } + $inner = $this->result instanceof PromiseInterface + ? $this->result->wait($unwrap) + : $this->result; - if ($this->result instanceof PromiseInterface) { - return $this->result->wait($unwrap); - } elseif ($this->state === self::FULFILLED) { - return $this->result; - } else { - // It's rejected so "unwrap" and throw an exception. - throw exception_for($this->result); + if ($unwrap) { + if ($this->result instanceof PromiseInterface + || $this->state === self::FULFILLED + ) { + return $inner; + } else { + // It's rejected so "unwrap" and throw an exception. + throw exception_for($inner); + } } } @@ -257,11 +259,10 @@ class Promise implements PromiseInterface $this->waitList = null; foreach ($waitList as $result) { - descend: $result->waitIfPending(); - if ($result->result instanceof Promise) { + while ($result->result instanceof Promise) { $result = $result->result; - goto descend; + $result->waitIfPending(); } } } |
