diff --git a/doc/api/stream.md b/doc/api/stream.md index 650a164775776f..656a92e546c600 100644 --- a/doc/api/stream.md +++ b/doc/api/stream.md @@ -2647,15 +2647,23 @@ const finished = util.promisify(stream.finished); const writable = fs.createWriteStream('./file'); -(async function() { +async function pump(iterator, writable) { for await (const chunk of iterator) { // Handle backpressure on write(). + if (writable.destroyed) return; if (!writable.write(chunk)) await once(writable, 'drain'); + if (writable.destroyed) return; } writable.end(); +} + +(async function() { // Ensure completion without errors. - await finished(writable); + await Promise.all([ + pump(iterator, writable), + finished(writable) + ]); })(); ```