Automattic\WooCommerce\Vendor\GraphQL
GraphQL::promiseToExecute
Same as executeQuery(), but requires PromiseAdapter and always returns a Promise. Useful for Async PHP platforms.
Method of the class: GraphQL{}
No Hooks.
Returns
null. Nothing (null).
Usage
$result = GraphQL::promiseToExecute( $promiseAdapter, $schema, $source, $rootValue, $context, ?array $variableValues, ?string $operationName, ?callable $fieldResolver, ?array $validationRules ): Promise;
- $promiseAdapter(PromiseAdapter) (required)
- .
- $schema(SchemaType) (required)
- .
- $source(string|DocumentNode) (required)
- .
- $rootValue(mixed)
- .
Default:null - $context(mixed)
- .
Default:null - ?array $variableValues
- .
Default:null - ?string $operationName
- .
Default:null - ?callable $fieldResolver
- .
Default:null - ?array $validationRules
- .
Default:null
GraphQL::promiseToExecute() GraphQL::promiseToExecute code WC 11.0.1
public static function promiseToExecute(
PromiseAdapter $promiseAdapter,
SchemaType $schema,
$source,
$rootValue = null,
$context = null,
?array $variableValues = null,
?string $operationName = null,
?callable $fieldResolver = null,
?array $validationRules = null
): Promise {
try {
$documentNode = $source instanceof DocumentNode
? $source
: Parser::parse(new Source($source, 'GraphQL'));
if ($validationRules === null) {
$queryComplexity = DocumentValidator::getRule(QueryComplexity::class);
assert($queryComplexity instanceof QueryComplexity, 'should not register a different rule for QueryComplexity');
$queryComplexity->setRawVariableValues($variableValues);
} else {
foreach ($validationRules as $rule) {
if ($rule instanceof QueryComplexity) {
$rule->setRawVariableValues($variableValues);
}
}
}
$validationErrors = DocumentValidator::validate($schema, $documentNode, $validationRules);
if ($validationErrors !== []) {
return $promiseAdapter->createFulfilled(
new ExecutionResult(null, $validationErrors)
);
}
return Executor::promiseToExecute(
$promiseAdapter,
$schema,
$documentNode,
$rootValue,
$context,
$variableValues,
$operationName,
$fieldResolver
);
} catch (Error $e) {
return $promiseAdapter->createFulfilled(
new ExecutionResult(null, [$e])
);
}
}