(ms: number, abortSignal?: AbortSignal)
| 1037 | } |
| 1038 | |
| 1039 | function sleepWithAbort(ms: number, abortSignal?: AbortSignal): Promise<void> { |
| 1040 | if (!abortSignal) { |
| 1041 | return sleep(ms) |
| 1042 | } |
| 1043 | if (abortSignal.aborted) { |
| 1044 | return Promise.resolve() |
| 1045 | } |
| 1046 | return new Promise((resolve) => { |
| 1047 | const timeoutId = setTimeout(() => { |
| 1048 | abortSignal.removeEventListener('abort', onAbort) |
| 1049 | resolve() |
| 1050 | }, ms) |
| 1051 | const onAbort = () => { |
| 1052 | clearTimeout(timeoutId) |
| 1053 | abortSignal.removeEventListener('abort', onAbort) |
| 1054 | resolve() |
| 1055 | } |
| 1056 | abortSignal.addEventListener('abort', onAbort, { once: true }) |
| 1057 | }) |
| 1058 | } |
no test coverage detected