diff --git a/doc/api/stream.md b/doc/api/stream.md index 650a164775776f..4f9f8241d38084 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() { - for await (const chunk of iterator) { +async function pump(iterable, writable) { + for await (const chunk of iterable) { // Handle backpressure on write(). - if (!writable.write(chunk)) + if (!writable.write(chunk)) { + if (writable.destroyed) return; await once(writable, 'drain'); + } } writable.end(); +} + +(async function() { // Ensure completion without errors. - await finished(writable); + await Promise.all([ + pump(iterable, writable), + finished(writable) + ]); })(); ``` @@ -2677,7 +2685,7 @@ const finished = util.promisify(stream.finished); const writable = fs.createWriteStream('./file'); (async function() { - const readable = Readable.from(iterator); + const readable = Readable.from(iterable); readable.pipe(writable); // Ensure completion without errors. await finished(writable); @@ -2692,7 +2700,7 @@ const pipeline = util.promisify(stream.pipeline); const writable = fs.createWriteStream('./file'); (async function() { - const readable = Readable.from(iterator); + const readable = Readable.from(iterable); await pipeline(readable, writable); })(); ```