MCPcopy Index your code
hub / github.com/andywer/threads.js / completed

Method completed

src/master/pool.ts:287–313  ·  view source on GitHub ↗
(allowResolvingImmediately: boolean = false)

Source from the content-addressed store, hash-verified

285 }
286
287 public async completed(allowResolvingImmediately: boolean = false) {
288 const settlementPromise = this.settled(allowResolvingImmediately)
289
290 const earlyExitPromise = new Promise<Error[]>((resolve, reject) => {
291 const subscription = this.eventObservable.subscribe({
292 next(event) {
293 if (event.type === PoolEventType.taskQueueDrained) {
294 subscription.unsubscribe()
295 resolve(settlementPromise)
296 } else if (event.type === PoolEventType.taskFailed) {
297 subscription.unsubscribe()
298 reject(event.error)
299 }
300 },
301 error: reject // make a pool-wide error reject the completed() result promise
302 })
303 })
304
305 const errors = await Promise.race([
306 settlementPromise,
307 earlyExitPromise
308 ])
309
310 if (errors.length > 0) {
311 throw errors[0]
312 }
313 }
314
315 public events() {
316 return this.eventObservable

Callers 1

terminateMethod · 0.95

Calls 2

settledMethod · 0.95
subscribeMethod · 0.80

Tested by

no test coverage detected