<?php namespace React\Promise; class RejectedPromise implements ExtendedPromiseInterface, CancellablePromiseInterface { private $reason; public function __construct($reason = null) { if ($reason instanceof PromiseInterface) { throw new \InvalidArgumentException('You cannot create React\Promise\RejectedPromise with a promise. Use React\Promise\reject($promiseOrValue) instead.'); } $this->reason = $reason; } public function then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null) { if (null === $onRejected) { return $this; } try { return resolve($onRejected($this->reason)); } catch (\Throwable $exception) { return new RejectedPromise($exception); } catch (\Exception $exception) { return new RejectedPromise($exception); } } public function done(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null) { if (null === $onRejected) { throw UnhandledRejectionException::resolve($this->reason); } $result = $onRejected($this->reason); if ($result instanceof self) { throw UnhandledRejectionException::resolve($result->reason); } if ($result instanceof ExtendedPromiseInterface) { $result->done(); } } public function otherwise(callable $onRejected) { if (!_checkTypehint($onRejected, $this->reason)) { return $this; } return $this->then(null, $onRejected); } public function always(callable $onFulfilledOrRejected) { return $this->then(null, function ($reason) use ($onFulfilledOrRejected) { return resolve($onFulfilledOrRejected())->then(function () use ($reason) { return new RejectedPromise($reason); }); }); } public function progress(callable $onProgress) { return $this; } public function cancel() { } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Exception | Folder | 0755 |
|
|
CancellablePromiseInterface.php | File | 166 B | 0644 |
|
CancellationQueue.php | File | 1.08 KB | 0644 |
|
Deferred.php | File | 1.27 KB | 0644 |
|
ExtendedPromiseInterface.php | File | 584 B | 0644 |
|
FulfilledPromise.php | File | 1.74 KB | 0644 |
|
LazyPromise.php | File | 1.62 KB | 0644 |
|
Promise.php | File | 5.9 KB | 0644 |
|
PromiseInterface.php | File | 226 B | 0644 |
|
PromisorInterface.php | File | 144 B | 0644 |
|
RejectedPromise.php | File | 2.06 KB | 0644 |
|
UnhandledRejectionException.php | File | 611 B | 0644 |
|
functions.php | File | 8 KB | 0644 |
|
functions_include.php | File | 96 B | 0644 |
|