Я хотел бы, чтобы результат вел себя так же, как myReadable.pipe (myWritable). Противодавление не создается из-за установки метки highwater на res.socket, есть ли способ изменить метки чтения и записи для созданного сокета?
var http = require('http');
const { Readable, Writable } = require('stream')
let i = 0;
const myReadable = new Readable({
objectMode: true,
highWaterMark: 3,
read(size) {
if(i < 100){
this.push(`data ${i}`);
}
i++;
console.log(`data ${i}`);
}
});
const myWritable = new Writable({
objectMode: true,
highWaterMark: 3,
write(chunk, encoding, callback) {
console.log("st: ", chunk.toString());
//setTimeout(callback, 2000);
callback();
}
});
// myReadable.pipe(myWritable);
var server = http.createServer(function (req, res) {
console.log("response here: ", res.writableHighWaterMark);
myReadable.pipe(res);
});
server.listen(8000, '127.0.0.1');
http.get('http://localhost:8000', { readableHighWaterMark: 0, writableHighWaterMark: 0 }, res => {
res.pipe(myWritable);
});