Как только событие readable
сработает, оно не сработает снова, пока поток не достигнет конца или пока вы не вызовете .read()
и не получите null
назад (больше нет данных для чтения). Как только вы получите null
, он сработает снова, когда появится больше данных.
Вот почему пример кода в do c делает это:
const readable = getReadableStreamSomehow();
readable.on('readable', function() {
// There is some data to read now.
let data;
while (data = this.read()) {
console.log(data);
}
});
В общем, это более сложный способ использования потоков. Если вы используете их в текущем режиме, таком как это:
process.stdin.on('data', (input) => {
console.log(input);
});
Тогда он будет просто звонить вам всякий раз, когда поступают данные.