Skip to content

Commit

Permalink
doc: correct cleanup option in stream.(promises.)finished
Browse files Browse the repository at this point in the history
PR-URL: nodejs#55043
Refs: nodejs#44862
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
  • Loading branch information
Renegade334 authored and tpoisseau committed Nov 21, 2024
1 parent e4b879d commit e84e3b4
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions doc/api/stream.md
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,11 @@ changes:
- v18.14.0
pr-url: https://github.com/nodejs/node/pull/46205
description: Added support for `ReadableStream` and `WritableStream`.
- version:
- v19.1.0
- v18.13.0
pr-url: https://github.com/nodejs/node/pull/44862
description: The `cleanup` option was added.
-->

* `stream` {Stream|ReadableStream|WritableStream} A readable and/or writable
Expand All @@ -265,7 +270,9 @@ changes:
* `error` {boolean|undefined}
* `readable` {boolean|undefined}
* `writable` {boolean|undefined}
* `signal`: {AbortSignal|undefined}
* `signal` {AbortSignal|undefined}
* `cleanup` {boolean|undefined} If `true`, removes the listeners registered by
this function before the promise is fulfilled. **Default:** `false`.
* Returns: {Promise} Fulfills when the stream is no
longer readable or writable.

Expand Down Expand Up @@ -301,6 +308,17 @@ rs.resume(); // Drain the stream.

The `finished` API also provides a [callback version][stream-finished].

`stream.finished()` leaves dangling event listeners (in particular
`'error'`, `'end'`, `'finish'` and `'close'`) after the returned promise is
resolved or rejected. 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 `options.cleanup` should be set to
`true`:

```js
await finished(rs, { cleanup: true });
```

### Object mode

All streams created by Node.js APIs operate exclusively on strings, {Buffer},
Expand Down Expand Up @@ -2754,8 +2772,6 @@ changes:
underlying stream will _not_ be aborted if the signal is aborted. The
callback will get called with an `AbortError`. All registered
listeners added by this function will also be removed.
* `cleanup` {boolean} remove all registered stream listeners.
**Default:** `false`.
* `callback` {Function} A callback function that takes an optional error
argument.
* Returns: {Function} A cleanup function which removes all registered
Expand Down

0 comments on commit e84e3b4

Please sign in to comment.