Добрый день, изучаю потоки, никак не могу выполнить сценарий "буфер полный, нужно очистить" в Writable стриме
вот что делаю:
const { Writable } = require('stream');
class Counter extends Writable {
_write(chunk, encoding, next) {
console.log(chunk.toString());
next();
}
}
const counter = new Counter({ highWaterMark: 2 }); // Размер буффера 2 байта
for(let i = 0; i < 1000; i++) {
const buffer = Buffer.from(`${i}`, 'utf8');
const canWrite = counter.write(buffer); // всегда true, даже пробовал рандомный текст вставлять
}
В документации написано:
Returns: false if the stream wishes for the calling code to wait for the 'drain' event to be emitted before continuing to write additional data; otherwise true.
Буффер полный, ждет отчистки, но метод write возвращает всегда true, почему, где я ошибся?
UPD. я так понимаю что
вызывая next() в методе _write(), я сигнализирую об успешной записи данных и буфер чистится, я прав?