@@ -63,8 +63,8 @@ def execute(schema, document_ast, root_value=None, context_value=None,
6363 middleware
6464 )
6565
66- def executor (resolve , reject ):
67- return resolve ( execute_operation (context , context .operation , root_value ) )
66+ def executor (v ):
67+ return execute_operation (context , context .operation , root_value )
6868
6969 def on_rejected (error ):
7070 context .errors .append (error )
@@ -75,7 +75,7 @@ def on_resolve(data):
7575 return ExecutionResult (data = data )
7676 return ExecutionResult (data = data , errors = context .errors )
7777
78- promise = Promise (executor ).catch (on_rejected ).then (on_resolve )
78+ promise = Promise . resolve ( None ). then (executor ).catch (on_rejected ).then (on_resolve )
7979 if return_promise :
8080 return promise
8181 context .executor .wait_until_finished ()
@@ -218,14 +218,16 @@ def complete_value_catching_error(exe_context, return_type, field_asts, info, re
218218 completed = complete_value (exe_context , return_type , field_asts , info , result )
219219 if is_thenable (completed ):
220220 def handle_error (error ):
221- exe_context .errors .append (error )
221+ traceback = completed ._traceback
222+ exe_context .report_error (error , traceback )
222223 return None
223224
224225 return completed .catch (handle_error )
225226
226227 return completed
227228 except Exception as e :
228- exe_context .errors .append (e )
229+ traceback = sys .exc_info ()[2 ]
230+ exe_context .report_error (e , traceback )
229231 return None
230232
231233
0 commit comments