diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/web/03_abort_signal.js | 7 | ||||
-rw-r--r-- | ext/web/lib.deno_web.d.ts | 4 |
2 files changed, 11 insertions, 0 deletions
diff --git a/ext/web/03_abort_signal.js b/ext/web/03_abort_signal.js index 6b278ba07..d46291b14 100644 --- a/ext/web/03_abort_signal.js +++ b/ext/web/03_abort_signal.js @@ -85,6 +85,13 @@ webidl.assertBranded(this, AbortSignal); return this[abortReason]; } + + throwIfAborted() { + webidl.assertBranded(this, AbortSignal); + if (this[abortReason] !== undefined) { + throw this[abortReason]; + } + } } defineEventHandler(AbortSignal.prototype, "abort"); diff --git a/ext/web/lib.deno_web.d.ts b/ext/web/lib.deno_web.d.ts index 3cdc2bea6..0f10af7f2 100644 --- a/ext/web/lib.deno_web.d.ts +++ b/ext/web/lib.deno_web.d.ts @@ -293,6 +293,10 @@ interface AbortSignal extends EventTarget { listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions, ): void; + + /** Throws this AbortSignal's abort reason, if its AbortController has + * signaled to abort; otherwise, does nothing. */ + throwIfAborted(): void; } declare var AbortSignal: { |