Automattic\WooCommerce\Vendor\GraphQL\Executor\Promise\Adapter
AmpPromiseAdapter::all
Method of the class: AmpPromiseAdapter{}
No Hooks.
Returns
null. Nothing (null).
Usage
$AmpPromiseAdapter = new AmpPromiseAdapter(); $AmpPromiseAdapter->all( $promisesOrValues ): Promise;
- $promisesOrValues(iterable) (required)
- .
AmpPromiseAdapter::all() 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);
}