()
| 22 | * @returns A Deferred object with promise, resolve, reject, and isPending methods |
| 23 | */ |
| 24 | export function createDeferred<T>(): Deferred<T> { |
| 25 | let resolve!: (value: T | PromiseLike<T>) => void |
| 26 | let reject!: (reason?: Error | unknown) => void |
| 27 | let isPending = true |
| 28 | |
| 29 | const promise = new Promise<T>((res, rej) => { |
| 30 | resolve = (value) => { |
| 31 | isPending = false |
| 32 | res(value) |
| 33 | } |
| 34 | |
| 35 | reject = (reason) => { |
| 36 | isPending = false |
| 37 | rej(reason) |
| 38 | } |
| 39 | }) |
| 40 | |
| 41 | return { |
| 42 | promise, |
| 43 | resolve, |
| 44 | reject, |
| 45 | isPending: () => isPending, |
| 46 | } |
| 47 | } |
no outgoing calls
no test coverage detected