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

AmpPromiseAdapter::allpublicWC 1.0

Method of the class: AmpPromiseAdapter{}

No Hooks.

Returns

null. Nothing (null).

Usage

$AmpPromiseAdapter = new AmpPromiseAdapter();
$AmpPromiseAdapter->all( $promisesOrValues ): Promise;
$promisesOrValues(iterable) (required)
.

AmpPromiseAdapter::all() code WC 10.9.1

public function all(iterable $promisesOrValues): Promise
{
    /** @var array<AmpPromise<mixed>> $promises */
    $promises = [];
    foreach ($promisesOrValues as $key => $item) {
        if ($item instanceof Promise) {
            $ampPromise = $item->adoptedPromise;
            assert($ampPromise instanceof AmpPromise);
            $promises[$key] = $ampPromise;
        } elseif ($item instanceof AmpPromise) {
            $promises[$key] = $item;
        }
    }

    $deferred = new Deferred();

    all($promises)->onResolve(static function (?\Throwable $reason, ?array $values) use ($promisesOrValues, $deferred): void {
        if ($reason === null) {
            assert(is_array($values), 'Either $reason or $values must be passed');

            $promisesOrValuesArray = is_array($promisesOrValues)
                ? $promisesOrValues
                : iterator_to_array($promisesOrValues);
            $resolvedValues = array_replace($promisesOrValuesArray, $values);
            $deferred->resolve($resolvedValues);

            return;
        }

        $deferred->fail($reason);
    });

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