| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <?php
- namespace React\Promise;
- /**
- * @deprecated 2.8.0 LazyPromise is deprecated and should not be used anymore.
- */
- class LazyPromise implements ExtendedPromiseInterface, CancellablePromiseInterface
- {
- private $factory;
- private $promise;
- public function __construct(callable $factory)
- {
- $this->factory = $factory;
- }
- public function then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null)
- {
- return $this->promise()->then($onFulfilled, $onRejected, $onProgress);
- }
- public function done(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null)
- {
- return $this->promise()->done($onFulfilled, $onRejected, $onProgress);
- }
- public function otherwise(callable $onRejected)
- {
- return $this->promise()->otherwise($onRejected);
- }
- public function always(callable $onFulfilledOrRejected)
- {
- return $this->promise()->always($onFulfilledOrRejected);
- }
- public function progress(callable $onProgress)
- {
- return $this->promise()->progress($onProgress);
- }
- public function cancel()
- {
- return $this->promise()->cancel();
- }
- /**
- * @internal
- * @see Promise::settle()
- */
- public function promise()
- {
- if (null === $this->promise) {
- try {
- $this->promise = resolve(\call_user_func($this->factory));
- } catch (\Throwable $exception) {
- $this->promise = new RejectedPromise($exception);
- } catch (\Exception $exception) {
- $this->promise = new RejectedPromise($exception);
- }
- }
- return $this->promise;
- }
- }
|