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

AmpFutureAdapter::allpublicWC 1.0

Method of the class: AmpFutureAdapter{}

No Hooks.

Returns

null. Nothing (null).

Usage

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

AmpFutureAdapter::all() code WC 10.9.1

public function all(iterable $promisesOrValues): Promise
{
    $items = is_array($promisesOrValues)
        ? $promisesOrValues
        : iterator_to_array($promisesOrValues);

    /** @var array<Future<mixed>> $futures */
    $futures = [];

    foreach ($items as $key => $item) {
        if ($item instanceof Promise) {
            $item = $item->adoptedPromise;
        }

        if ($item instanceof Future) {
            $futures[$key] = $item;
        }
    }

    $combined = async(static function () use ($items, $futures): array {
        if ($futures === []) {
            return $items;
        }

        $resolved = await($futures);

        return array_replace($items, $resolved);
    });

    return new Promise($combined, $this);
}