Файл: vendor/laravel/framework/src/Illuminate/Http/Client/Promises/FluentPromise.php
Строк: 78
<?php
namespace IlluminateHttpClientPromises;
use GuzzleHttpPromisePromiseInterface;
use IlluminateSupportTraitsForwardsCalls;
/**
* A decorated Promise which allows for chaining callbacks.
*/
class FluentPromise implements PromiseInterface
{
use ForwardsCalls;
/**
* Create a new fluent promise instance.
*
* @param GuzzleHttpPromisePromiseInterface $guzzlePromise
*/
public function __construct(protected PromiseInterface $guzzlePromise)
{
}
#[Override]
public function then(?callable $onFulfilled = null, ?callable $onRejected = null): PromiseInterface
{
return $this->__call('then', [$onFulfilled, $onRejected]);
}
#[Override]
public function otherwise(callable $onRejected): PromiseInterface
{
return $this->__call('otherwise', [$onRejected]);
}
#[Override]
public function resolve($value): void
{
$this->guzzlePromise->resolve($value);
}
#[Override]
public function reject($reason): void
{
$this->guzzlePromise->reject($reason);
}
#[Override]
public function cancel(): void
{
$this->guzzlePromise->cancel();
}
#[Override]
public function wait(bool $unwrap = true)
{
return $this->__call('wait', [$unwrap]);
}
#[Override]
public function getState(): string
{
return $this->guzzlePromise->getState();
}
/**
* Get the underlying Guzzle promise.
*
* @return GuzzleHttpPromisePromiseInterface
*/
public function getGuzzlePromise(): PromiseInterface
{
return $this->guzzlePromise;
}
/**
* Proxy requests to the underlying promise interface and update the local promise.
*
* @param string $method
* @param array $parameters
* @return mixed
*/
public function __call($method, $parameters)
{
$result = $this->forwardCallTo($this->guzzlePromise, $method, $parameters);
if (! $result instanceof PromiseInterface) {
return $result;
}
$this->guzzlePromise = $result;
return $this;
}
}