Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
<?phpnamespace GuzzleHttp\Promise;/*** A promise that has been fulfilled.** Thenning off of this promise will invoke the onFulfilled callback* immediately and ignore other callbacks.*/class FulfilledPromise implements PromiseInterface{private $value;public function __construct($value){if (is_object($value) && method_exists($value, 'then')) {throw new \InvalidArgumentException('You cannot create a FulfilledPromise with a promise.');}$this->value = $value;}public function then(callable $onFulfilled = null,callable $onRejected = null) {// Return itself if there is no onFulfilled function.if (!$onFulfilled) {return $this;}$queue = Utils::queue();$p = new Promise([$queue, 'run']);$value = $this->value;$queue->add(static function () use ($p, $value, $onFulfilled) {if (Is::pending($p)) {try {$p->resolve($onFulfilled($value));} catch (\Throwable $e) {$p->reject($e);} catch (\Exception $e) {$p->reject($e);}}});return $p;}public function otherwise(callable $onRejected){return $this->then(null, $onRejected);}public function wait($unwrap = true, $defaultDelivery = null){return $unwrap ? $this->value : null;}public function getState(){return self::FULFILLED;}public function resolve($value){if ($value !== $this->value) {throw new \LogicException("Cannot resolve a fulfilled promise");}}public function reject($reason){throw new \LogicException("Cannot reject a fulfilled promise");}public function cancel(){// pass}}