Skip to content

Commit

Permalink
Removed global _error_obj
Browse files Browse the repository at this point in the history
  • Loading branch information
syrusakbary committed Apr 30, 2017
1 parent 60cab68 commit b2963d2
Showing 1 changed file with 7 additions and 16 deletions.
23 changes: 7 additions & 16 deletions promise/promise.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,20 +58,12 @@ def make_self_resolution_error():
return TypeError("Promise is self")


_error_obj = {
'e': None,
't': None
} # type: Dict[str, Union[None, Exception, TracebackType]]


def try_catch(handler, *args, **kwargs):
try:
return handler(*args, **kwargs)
return (handler(*args, **kwargs), None)
except Exception as e:
tb = exc_info()[2]
_error_obj['e'] = e
_error_obj['t'] = tb
return _error_obj
return (None, (e, tb))


peek_context = Context.peek_context
Expand Down Expand Up @@ -297,15 +289,14 @@ def _settle_promise0(self, handler, value, traceback):
def _settle_promise_from_handler(self, handler, value, promise):
# promise._push_context()
# with Context():
x = try_catch(handler, value) # , promise
value, error_with_tb = try_catch(handler, value) # , promise
# promise_created = promise._pop_context()

if x == _error_obj:
promise._reject_callback(x['e'], False, x['t'])
# if isinstance(x, PromiseError):
# promise._reject_callback(x.e, False)
if error_with_tb:
error, tb = error_with_tb
promise._reject_callback(error, False, tb)
else:
promise._resolve_callback(x)
promise._resolve_callback(value)

def _promise_at(self, index):
assert index > 0
Expand Down

0 comments on commit b2963d2

Please sign in to comment.