Skip to main content
internal.finished - node__stream.d.ts - Node documentation
function internal.finished

Usage in Deno

```typescript import { internal } from "node:node__stream.d.ts"; ```
finished(
stream:
ReadableStream
| WritableStream
| ReadWriteStream
,
options: FinishedOptions,
callback: (err?: ErrnoException | null) => void,
): () => void
A readable and/or writable stream/webstream. A function to get notified when a stream is no longer readable, writable or has experienced an error or a premature close event. ```js import { finished } from 'node:stream'; import fs from 'node:fs'; const rs = fs.createReadStream('archive.tar'); finished(rs, (err) => { if (err) { console.error('Stream failed.', err); } else { console.log('Stream is done reading.'); } }); rs.resume(); // Drain the stream. ``` Especially useful in error handling scenarios where a stream is destroyed prematurely (like an aborted HTTP request), and will not emit `'end'` or `'finish'`. The `finished` API provides [`promise version`](https://nodejs.org/docs/latest-v22.x/api/stream.html#streamfinishedstream-options). `stream.finished()` leaves dangling event listeners (in particular `'error'`, `'end'`, `'finish'` and `'close'`) after `callback` has been invoked. The reason for this is so that unexpected `'error'` events (due to incorrect stream implementations) do not cause unexpected crashes. If this is unwanted behavior then the returned cleanup function needs to be invoked in the callback: ```js const cleanup = finished(rs, (err) => { cleanup(); // ... }); ```

Parameters

stream:
ReadableStream
| WritableStream
| ReadWriteStream
A readable and/or writable stream.
callback: (err?: ErrnoException | null) => void
A callback function that takes an optional error argument.

Return Type

() => void
A cleanup function which removes all registered listeners.
finished(
stream:
ReadableStream
| WritableStream
| ReadWriteStream
,
callback: (err?: ErrnoException | null) => void,
): () => void

Parameters

stream:
ReadableStream
| WritableStream
| ReadWriteStream
callback: (err?: ErrnoException | null) => void

Return Type

() => void