MCPcopy Create free account
hub / github.com/andywer/threads.js / createPromiseWithResolver

Function createPromiseWithResolver

src/promise.ts:7–25  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

5 * Use with care!
6 */
7export function createPromiseWithResolver<T>(): [Promise<T>, (result: T) => void] {
8 let alreadyResolved = false
9 let resolvedTo: T
10 let resolver: (value: T | PromiseLike<T>) => void = doNothing
11
12 const promise = new Promise<T>(resolve => {
13 if (alreadyResolved) {
14 resolve(resolvedTo)
15 } else {
16 resolver = resolve
17 }
18 })
19 const exposedResolver = (value: T) => {
20 alreadyResolved = true
21 resolvedTo = value
22 resolver(resolvedTo)
23 }
24 return [promise, exposedResolver]
25}

Callers 1

createTerminatorFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected