📜  Node.js Stream 可读.unshift() 方法

📅  最后修改于: 2022-05-13 01:56:44.229000             🧑  作者: Mango

Node.js Stream 可读.unshift() 方法

可读流中的 readable.unshift () 方法用于将一大块数据推回内部缓冲区。但是,当一个流被完全消耗并且需要“不消耗”时,这种方法很有帮助。

句法:

readable.unshift( chunk, encoding )

参数:此方法接受上面提到的和下面描述的两个参数。

  • 块:它包含要取消转移到读取队列的数据块。
  • encoding:它保存编码类型。

返回值:再次调用 read 方法后,该方法将数据块转移到内部缓冲区,该缓冲区可以只读。

下面的示例说明了 Node.js 中readable.unshift() 方法的使用:

示例 1:

// Node.js program to demonstrate the     
// readable.unshift() method  
  
// Including fs module
const fs = require('fs');
  
// Declaring data
var data = '';
  
// Constructing readable stream
const readable = fs.createReadStream("input.text");
  
// Instructions for reading data
readable.on('readable', () => {
  let chunk;
   
  // Using while loop and calling
  // read method
  while (null !== (chunk = readable.read())) {
   
    // Displaying the chunk
    console.log(`read: ${chunk}`);
  }
});
console.log("Program ends!!!");
  
// Calling unshift method
readable.unshift(data);

输出:

Program ends!!!
true
read: GfG

示例 2:

// Node.js program to demonstrate the     
// readable.unshift(chunk[, encoding])
// method  
  
// Include fs module
const fs = require('fs');
var data = '';
  
// Create readable stream
const readable = fs.createReadStream("input.text");
  
// Calling setEncoding method
readable.setEncoding('utf8');
  
// Instructions to unshift data
readable.on("readable", () => {
  let data = readable.read();
    
  while (data === "GfG") {
    
    readable.unshift(data);
    data = readable.read();
  }
  });
  
// Displays that program 
// is unshifted
  console.log("Unshifted!!");

输出:

Unshifted!!

参考: https://nodejs.org/api/stream.html#stream_readable_unshift_chunk_encoding。