Backpressure occurs when a readable stream produces data faster than the writable stream can consume it.
How it works:
1const readable = fs.createReadStream("big-file.txt");2const writable = fs.createWriteStream("output.txt");34readable.on("data", (chunk) => {5 const canContinue = writable.write(chunk);6 if (!canContinue) {7 readable.pause();8 writable.once("drain", () => readable.resume());9 }10});
pipe() handles it automatically:
1readable.pipe(writable);
pipeline() is recommended (handles errors too):
1const { pipeline } = require("stream");2pipeline(readable, writable, (err) => {3 if (err) console.error(err);4});