diff options
Diffstat (limited to 'assets/php/vendor/react/promise/src/FulfilledPromise.php')
-rw-r--r-- | assets/php/vendor/react/promise/src/FulfilledPromise.php | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/assets/php/vendor/react/promise/src/FulfilledPromise.php b/assets/php/vendor/react/promise/src/FulfilledPromise.php new file mode 100644 index 0000000..914bb5c --- /dev/null +++ b/assets/php/vendor/react/promise/src/FulfilledPromise.php @@ -0,0 +1,68 @@ +<?php + +namespace React\Promise; + +class FulfilledPromise implements ExtendedPromiseInterface, CancellablePromiseInterface +{ + private $value; + + public function __construct($value = null) + { + if ($value instanceof PromiseInterface) { + throw new \InvalidArgumentException('You cannot create React\Promise\FulfilledPromise with a promise. Use React\Promise\resolve($promiseOrValue) instead.'); + } + + $this->value = $value; + } + + public function then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null) + { + if (null === $onFulfilled) { + return $this; + } + + try { + return resolve($onFulfilled($this->value)); + } 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 === $onFulfilled) { + return; + } + + $result = $onFulfilled($this->value); + + if ($result instanceof ExtendedPromiseInterface) { + $result->done(); + } + } + + public function otherwise(callable $onRejected) + { + return $this; + } + + public function always(callable $onFulfilledOrRejected) + { + return $this->then(function ($value) use ($onFulfilledOrRejected) { + return resolve($onFulfilledOrRejected())->then(function () use ($value) { + return $value; + }); + }); + } + + public function progress(callable $onProgress) + { + return $this; + } + + public function cancel() + { + } +} |