Skip to main content
EventEmitter.addAbortListener - node__events.d.ts - Node documentation
method EventEmitter.addAbortListener
Unstable

Usage in Deno

```typescript import { EventEmitter } from "node:node__events.d.ts"; ```
EventEmitter.addAbortListener(
signal: AbortSignal,
resource: (event: Event) => void,
): Disposable
Listens once to the `abort` event on the provided `signal`. Listening to the `abort` event on abort signals is unsafe and may lead to resource leaks since another third party with the signal can call `e.stopImmediatePropagation()`. 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. This API allows safely using `AbortSignal`s in Node.js APIs by solving these two issues by listening to the event such that `stopImmediatePropagation` does not prevent the listener from running. Returns a disposable so that it may be unsubscribed from more easily. ```js import { addAbortListener } from 'node:events'; function example(signal) { let disposable; try { signal.addEventListener('abort', (e) => e.stopImmediatePropagation()); disposable = addAbortListener(signal, (e) => { // Do something when signal is aborted. }); } finally { disposable?.[Symbol.dispose](); } } ```

Parameters

signal: AbortSignal
resource: (event: Event) => void

Return Type

Disposable
Disposable that removes the `abort` listener.