@@ -63,8 +63,8 @@ def execute(schema, document_ast, root_value=None, context_value=None,
63
63
middleware
64
64
)
65
65
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 )
68
68
69
69
def on_rejected (error ):
70
70
context .errors .append (error )
@@ -75,7 +75,7 @@ def on_resolve(data):
75
75
return ExecutionResult (data = data )
76
76
return ExecutionResult (data = data , errors = context .errors )
77
77
78
- promise = Promise (executor ).catch (on_rejected ).then (on_resolve )
78
+ promise = Promise . resolve ( None ). then (executor ).catch (on_rejected ).then (on_resolve )
79
79
if return_promise :
80
80
return promise
81
81
context .executor .wait_until_finished ()
@@ -218,14 +218,16 @@ def complete_value_catching_error(exe_context, return_type, field_asts, info, re
218
218
completed = complete_value (exe_context , return_type , field_asts , info , result )
219
219
if is_thenable (completed ):
220
220
def handle_error (error ):
221
- exe_context .errors .append (error )
221
+ traceback = completed ._traceback
222
+ exe_context .report_error (error , traceback )
222
223
return None
223
224
224
225
return completed .catch (handle_error )
225
226
226
227
return completed
227
228
except Exception as e :
228
- exe_context .errors .append (e )
229
+ traceback = sys .exc_info ()[2 ]
230
+ exe_context .report_error (e , traceback )
229
231
return None
230
232
231
233
0 commit comments