namespace 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
public function __construct($value)
if (is_object($value) && method_exists($value, 'then')) {
throw new \InvalidArgumentException(
'You cannot create a FulfilledPromise with a promise.'
callable $onFulfilled = null,
callable $onRejected = null
// Return itself if there is no onFulfilled function.
$p = new Promise([$queue, 'run']);
$queue->add(static function () use ($p, $value, $onFulfilled) {
$p->resolve($onFulfilled($value));
} catch (\Throwable $e) {
} catch (\Exception $e) {
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()
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");