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

Function register_promise

crates/wasm/Lib/asyncweb.py:168–190  ·  view source on GitHub ↗
(i, prom)

Source from the content-addressed store, hash-verified

166
167 # needs to be a separate function for creating a closure in a loop
168 def register_promise(i, prom):
169 prom_completed = False
170
171 def promise_done(success, res):
172 nonlocal prom_completed, results, num_completed
173 if prom_completed or cbs.done:
174 return
175 prom_completed = True
176 if success:
177 results[i] = res
178 num_completed += 1
179 if num_completed == num_proms:
180 result = tuple(results)
181 del results
182 cbs.resolve(result)
183 else:
184 del results
185 cbs.reject(res)
186
187 _resolve(prom).then(
188 lambda res: promise_done(True, res),
189 lambda err: promise_done(False, err),
190 )
191
192 for i, prom in enumerate(proms):
193 register_promise(i, prom)

Callers 1

wait_allFunction · 0.85

Calls 3

promise_doneFunction · 0.85
_resolveFunction · 0.70
thenMethod · 0.45

Tested by

no test coverage detected