nodejs处于暂停模式的可读流

时间:2018-06-18 23:18:43

标签: node.js nodejs-stream

我正在尝试在暂停模式下使用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

发生了什么事?

0 个答案:

没有答案