MCPcopy Index your code
hub / github.com/RustPython/RustPython / CallbackPromise

Class CallbackPromise

crates/wasm/Lib/asyncweb.py:80–124  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

78
79
80class CallbackPromise:
81 def __init__(self):
82 self.done = 0
83 self.__successes = []
84 self.__errors = []
85
86 def then(self, success=None, error=None):
87 if success and not callable(success):
88 raise TypeError("success callback must be callable")
89 if error and not callable(error):
90 raise TypeError("error callback must be callable")
91
92 if not self.done:
93 if success:
94 self.__successes.append(success)
95 if error:
96 self.__errors.append(error)
97 return
98
99 cb = success if self.done == 1 else error
100 if cb:
101 return _call_resolve(cb, self.__result)
102 else:
103 return self
104
105 def __await__(self):
106 yield self
107
108 def resolve(self, value):
109 if self.done:
110 return
111 self.__result = value
112 self.done = 1
113 for f in self.__successes:
114 f(value)
115 del self.__successes, self.__errors
116
117 def reject(self, err):
118 if self.done:
119 return
120 self.__result = err
121 self.done = -1
122 for f in self.__errors:
123 f(err)
124 del self.__successes, self.__errors
125
126
127def _coro_promise(coro):

Callers 3

_coro_promiseFunction · 0.85
wait_allFunction · 0.85
timeoutFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected