NodeJS Program to Backpressure Idea Demo with Explanation
NodeJS
Hard
Streams & Buffers
33 views
1 min read
79 words
This problem helps you practice core NodeJS fundamentals in a practical way. It builds intuition around writable, backpressure, idea. Let’s break it down step by step so you can implement it confidently.
Problem Statement
Pipe a readable to writable and log when drain happens.
Input Format
No input.
Output Format
Print some logs.
Constraints
Use a slow writable.
Code Solution
This explanation is written for learning purposes and to help beginners understand the concept clearly.
const { Readable, Writable } = require('stream');
const src = Readable.from(Array.from({ length: 50 }, () => 'meetcode\
'));
const sink = new Writable({
highWaterMark: 8,
write(chunk, enc, cb) {
setTimeout(cb, 5);
}
});
sink.on('drain', () => console.log('drain'));
src.pipe(sink).on('finish', () => console.log('done'));
Output Example
No sample I/O is provided for this question.
Common Mistakes
- Misreading input/output format.
- Not handling constraints and edge cases.
- Off-by-one errors in loops.
- Forgetting to reset variables between test cases (if any).
Solution Guide
Problem
Pipe a readable to writable and log when drain happens.
Input / Output
Constraints
Use a slow writable.
Details
Common Mistakes
- Misreading input/output format.
- Not handling constraints and edge cases.
- Off-by-one errors in loops.
- Forgetting to reset variables between test cases (if any).
Official Solution
const { Readable, Writable } = require('stream');
const src = Readable.from(Array.from({ length: 50 }, () => 'meetcode\
'));
const sink = new Writable({
highWaterMark: 8,
write(chunk, enc, cb) {
setTimeout(cb, 5);
}
});
sink.on('drain', () => console.log('drain'));
src.pipe(sink).on('finish', () => console.log('done'));
Solutions (0)
No solutions submitted yet. Be the first!