diff --git a/src/Server.php b/src/Server.php index 1d3817a..d3945ac 100644 --- a/src/Server.php +++ b/src/Server.php @@ -4,6 +4,7 @@ namespace GraphQL; use GraphQL\Error\Error; use GraphQL\Error\InvariantViolation; use GraphQL\Executor\ExecutionResult; +use GraphQL\Executor\Executor; use GraphQL\Executor\Promise\PromiseAdapter; use GraphQL\Language\AST\DocumentNode; 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( $this->getSchema(), $query, @@ -491,6 +498,10 @@ class Server $operationName ); + if (isset($promiseAdapter)) { + Executor::setPromiseAdapter($promiseAdapter); + } + // Add details about original exception in error entry (if any) if ($this->debug & static::DEBUG_EXCEPTIONS) { $result->setErrorFormatter([$this, 'formatError']);