linked-abort-controller
Advanced tools
{ | ||
"name": "linked-abort-controller", | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "keywords": [], |
# LinkedAbortController | ||
```ts | ||
export class WithAbortController { | ||
protected abortController: AbortController; | ||
protected abortSignal: AbortSignal; | ||
protected constructor(abortSignal?: AbortSignal) { | ||
this.abortController = new AbortController(); | ||
this.abortSignal = this.abortController.signal; | ||
if (abortSignal) { | ||
abortSignal.addEventListener('abort', () => | ||
this.abortController.abort(abortSignal.reason), | ||
); | ||
} | ||
export class LinkedAbortController extends AbortController { | ||
constructor(outerAbortSignal?: AbortSignal) { | ||
super(); | ||
outerAbortSignal?.addEventListener('abort', () => { | ||
this.abort(outerAbortSignal.reason); | ||
}); | ||
} | ||
} | ||
``` |
3469
-5.22%13
-35%