+<li>Defined in node_modules/.pnpm/@types+node@20.5.0/node_modules/@types/node/events.d.ts:625</li></ul></aside></li></ul></section>
+<section class="tsd-panel tsd-member tsd-is-inherited tsd-is-external"><a id="addAbortListener" class="tsd-anchor"></a>
+<h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagStatic">Static</code> <span>add<wbr/>Abort<wbr/>Listener</span><a href="#addAbortListener" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3>
+<ul class="tsd-signatures tsd-is-inherited tsd-is-external">
+<li class="tsd-signature tsd-anchor-link" id="addAbortListener.addAbortListener-1"><span class="tsd-kind-call-signature">add<wbr/>Abort<wbr/>Listener</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">signal</span>, <span class="tsd-kind-parameter">resource</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type ">Disposable</span><a href="#addAbortListener.addAbortListener-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></li>
+<li class="tsd-description"><code class="tsd-tag ts-flagExperimental">Experimental</code>
+<div class="tsd-comment tsd-typography"><p>Listens once to the <code>abort</code> event on the provided <code>signal</code>.</p>
+<p>Listening to the <code>abort</code> event on abort signals is unsafe and may
+lead to resource leaks since another third party with the signal can
+call <code>e.stopImmediatePropagation()</code>. Unfortunately Node.js cannot change
+this since it would violate the web standard. Additionally, the original
+API makes it easy to forget to remove listeners.</p>
+<p>This API allows safely using <code>AbortSignal</code>s in Node.js APIs by solving these
+two issues by listening to the event such that <code>stopImmediatePropagation</code> does
+not prevent the listener from running.</p>
+<p>Returns a disposable so that it may be unsubscribed from more easily.</p>
+<pre><code class="language-js"><span class="hl-5">import</span><span class="hl-0"> { </span><span class="hl-3">addAbortListener</span><span class="hl-0"> } </span><span class="hl-5">from</span><span class="hl-0"> </span><span class="hl-6">'node:events'</span><span class="hl-0">;</span><br/><br/><span class="hl-4">function</span><span class="hl-0"> </span><span class="hl-2">example</span><span class="hl-0">(</span><span class="hl-3">signal</span><span class="hl-0">) {</span><br/><span class="hl-0"> </span><span class="hl-4">let</span><span class="hl-0"> </span><span class="hl-3">disposable</span><span class="hl-0">;</span><br/><span class="hl-0"> </span><span class="hl-5">try</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-3">signal</span><span class="hl-0">.</span><span class="hl-2">addEventListener</span><span class="hl-0">(</span><span class="hl-6">'abort'</span><span class="hl-0">, (</span><span class="hl-3">e</span><span class="hl-0">) </span><span class="hl-4">=></span><span class="hl-0"> </span><span class="hl-3">e</span><span class="hl-0">.</span><span class="hl-2">stopImmediatePropagation</span><span class="hl-0">());</span><br/><span class="hl-0"> </span><span class="hl-3">disposable</span><span class="hl-0"> = </span><span class="hl-2">addAbortListener</span><span class="hl-0">(</span><span class="hl-3">signal</span><span class="hl-0">, (</span><span class="hl-3">e</span><span class="hl-0">) </span><span class="hl-4">=></span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-8">// Do something when signal is aborted.</span><br/><span class="hl-0"> });</span><br/><span class="hl-0"> } </span><span class="hl-5">finally</span><span class="hl-0"> {</span><br/><span class="hl-0"> </span><span class="hl-3">disposable</span><span class="hl-0">?.[</span><span class="hl-3">Symbol</span><span class="hl-0">.</span><span class="hl-3">dispose</span><span class="hl-0">]();</span><br/><span class="hl-0"> }</span><br/><span class="hl-0">}</span>
+</code><button>Copy</button></pre>
+</div>
+<div class="tsd-parameters">
+<h4 class="tsd-parameters-title">Parameters</h4>
+<ul class="tsd-parameter-list">
+<li>
+<h5><span class="tsd-kind-parameter">signal</span>: <span class="tsd-signature-type ">AbortSignal</span></h5></li>
+<li>
+<h5><span class="tsd-kind-parameter">resource</span>: <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span></h5>
+<ul class="tsd-parameters">
+<li class="tsd-parameter-signature">
+<ul class="tsd-signatures tsd-is-external">
+<li class="tsd-signature"><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">event</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
+<li class="tsd-description">
+<div class="tsd-parameters">
+<h4 class="tsd-parameters-title">Parameters</h4>
+<ul class="tsd-parameter-list">
+<li>
+<h5><span class="tsd-kind-parameter">event</span>: <span class="tsd-signature-type ">Event</span></h5></li></ul></div>
+<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></li></ul></li></ul></div>
+<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Disposable</span></h4><p>that removes the <code>abort</code> listener.</p>
+
+<div class="tsd-comment tsd-typography">
+<h4>Since</h4><p>v20.5.0</p>
+</div><aside class="tsd-sources">
+<p>Inherited from EventEmitter.addAbortListener</p>
+<ul>
+<li>Defined in node_modules/.pnpm/@types+node@20.5.0/node_modules/@types/node/events.d.ts:375</li></ul></aside></li></ul></section>