nodejs читаемые потоки в режиме паузы

Я пытаюсь потреблять читаемые потоки nodejs в режиме паузы. но они всегда возвращают ноль.

const fs = require('fs');
const readS = fs.createReadStream('data.txt');
console.log(readS._readableState.flowing); //null
readS.resume();
console.log(readS._readableState.flowing); //true
let a = readS.read(1);
console.log(a); // null
readS.pause();
console.log(readS._readableState.flowing); // false
let b = readS.read(1); 
console.log(b); //null

Я также включил состояние читаемых потоков. Что я делаю не так и как я могу использовать поток без слушателей и в режиме паузы??

data.txt - это файл, заполненный текстом. Я также вижу, что внутренний буфер, полученный с помощью readS._readableState.buffer, всегда возвращает BufferList { head: null, tail: null, length: 0 }

но когда я заключаю вызов readS.read() в setTimeout(ПРИМЕЧАНИЕ: 0s setTimeout и setImmediate не будут работать), он возвращает мне объект буфера, как и ожидалось

setTimeout(() => {
  a = readS.read();
  console.log(a);
},10); //returns the buffer object as expected

Что происходит??

0 ответов

Другие вопросы по тегам