Skip to content

Commit fd268fd

Browse files
kevinoidMyles Borins
authored and
Myles Borins
committed
doc: clarify when writable.write callback is called
The current documentation for writable.write only specifies that the callback is called "once the data has been fully handled". It is ambiguous whether this means "successfully handled" and, if so, whether the callback is called if the data can not be successfully handled (i.e. an error occurs). The ambiguity is not only in the documentation. The stream class implementations differ on this point. stream.Writable invokes the callback with any errors that occur during parameter checking or during calls to _write. However, not all classes return all errors to _write. zlib.Zlib does pass argument and state errors to the _write (_transform) callback, but does not pass data errors. http.OutgoingMessage passes argument type errors and some other types of errors, but not all. This inconsistency is behind issue #1746 and, I suspect, other issues in client code which passes a callback to write. This commit takes no position on whether the callback error behavior should changed, but simply attempts to document the current behavior in a way that is open to changes so that users are not caught by surprise. PR-URL: #4810 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Jeremy Whitlock <[email protected]> Reviewed-By: Benjamin Gruenbaum <[email protected]>
1 parent 7337e35 commit fd268fd

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

doc/api/stream.markdown

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -706,7 +706,9 @@ Flush all data, buffered since [`stream.cork()`][] call.
706706
* Returns: {Boolean} `true` if the data was handled completely.
707707

708708
This method writes some data to the underlying system, and calls the
709-
supplied callback once the data has been fully handled.
709+
supplied callback once the data has been fully handled. If an error
710+
occurs, the callback may or may not be called with the error as its
711+
first argument. To detect write errors, listen for the `'error'` event.
710712

711713
The return value indicates if you should continue writing right now.
712714
If the data had to be buffered internally, then it will return

0 commit comments

Comments
 (0)