Automattic\WooCommerce\Vendor\GraphQL\Executor\Promise\Adapter

AmpPromiseAdapter::thenpublicWC 1.0

Method of the class: AmpPromiseAdapter{}

No Hooks.

Returns

null. Nothing (null).

Usage

$AmpPromiseAdapter = new AmpPromiseAdapter();
$AmpPromiseAdapter->then( $promise, ?callable $onFulfilled, ?callable $onRejected ): Promise;
$promise(Promise) (required)
.
?callable $onFulfilled
.
Default: null
?callable $onRejected
.
Default: null

AmpPromiseAdapter::then() code WC 10.9.1

public function then(Promise $promise, ?callable $onFulfilled = null, ?callable $onRejected = null): Promise
{
    $deferred = new Deferred();
    $onResolve = static function (?\Throwable $reason, $value) use ($onFulfilled, $onRejected, $deferred): void {
        if ($reason === null && $onFulfilled !== null) {
            self::resolveWithCallable($deferred, $onFulfilled, $value);
        } elseif ($reason === null) {
            $deferred->resolve($value);
        } elseif ($onRejected !== null) {
            self::resolveWithCallable($deferred, $onRejected, $reason);
        } else {
            $deferred->fail($reason);
        }
    };

    $ampPromise = $promise->adoptedPromise;
    assert($ampPromise instanceof AmpPromise);
    $ampPromise->onResolve($onResolve);

    return new Promise($deferred->promise(), $this);
}