我正在尝试在暂停模式下使用nodejs可读流。但它们总是返回null。
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}
但是当我在setTimeout中包含readS.read()调用时(注意:0s setTimeout和setImmediate赢了工作),它会按预期返回缓冲区对象
setTimeout(() => {
a = readS.read();
console.log(a);
},10); //returns the buffer object as expected
发生了什么事?