GraphQL\Server: set PromiseAdapter before executing query

This commit is contained in:
vladar 2017-01-26 19:24:53 +07:00
parent d10e933a00
commit c18cd16960

View File

@ -4,6 +4,7 @@ namespace GraphQL;
use GraphQL\Error\Error; use GraphQL\Error\Error;
use GraphQL\Error\InvariantViolation; use GraphQL\Error\InvariantViolation;
use GraphQL\Executor\ExecutionResult; use GraphQL\Executor\ExecutionResult;
use GraphQL\Executor\Executor;
use GraphQL\Executor\Promise\PromiseAdapter; use GraphQL\Executor\Promise\PromiseAdapter;
use GraphQL\Language\AST\DocumentNode; use GraphQL\Language\AST\DocumentNode;
use GraphQL\Language\Parser; use GraphQL\Language\Parser;
@ -482,6 +483,12 @@ class Server
}); });
} }
if ($this->promiseAdapter) {
// TODO: inline GraphQL::executeAndReturnResult and pass promise adapter to executor constructor directly
$promiseAdapter = Executor::getPromiseAdapter();
Executor::setPromiseAdapter($this->promiseAdapter);
}
$result = GraphQL::executeAndReturnResult( $result = GraphQL::executeAndReturnResult(
$this->getSchema(), $this->getSchema(),
$query, $query,
@ -491,6 +498,10 @@ class Server
$operationName $operationName
); );
if (isset($promiseAdapter)) {
Executor::setPromiseAdapter($promiseAdapter);
}
// Add details about original exception in error entry (if any) // Add details about original exception in error entry (if any)
if ($this->debug & static::DEBUG_EXCEPTIONS) { if ($this->debug & static::DEBUG_EXCEPTIONS) {
$result->setErrorFormatter([$this, 'formatError']); $result->setErrorFormatter([$this, 'formatError']);