Node.js 中的 Stream writable.cork() 和 uncork() 方法

node.jsjavascriptweb developmentfront end technology

writable.cork() 方法用于强制将所有写入的数据缓冲在内存中。只有在调用 stream.uncork() 或 stream.end() 方法后,此缓冲数据才会从缓冲内存中删除。

语法

cork()

writeable.cork()

uncork()

writeable.uncork()

参数

因为它缓冲写入的数据。唯一需要的参数是可写数据。

示例

创建一个名为 – 的文件cork.js 并复制以下代码片段。创建文件后,使用以下命令运行此代码,如下例所示 −

node cork.js

cork.js

// 演示 writable.cork() 方法的程序
const stream = require('stream');

// 使用 writable 创建数据流
const writable = new stream.Writable({
   // 从流中写入数据
   write: function(chunk, encoding, next) {
      // 将数据块转换为要显示的内容
      console.log(chunk.toString());
      next();
   }
});

// 写入数据
writable.write('Hi - 已打印此数据');

// 调用 cork() 函数
writable.cork();

// 再次写入一些数据
writable.write('Welcome to TutorialsPoint !');
writable.write("简单学习");
writable.write("此数据将被塞入内存");

输出

C:\home
ode>> node cork.js 嗨 - 已打印此数据

只有在 cork() 方法之间写入的数据才会打印,而其余数据将被塞入缓冲内存。以下示例显示如何从缓冲内存中解开上述数据。

示例

让我们再看一个关于如何解开()的示例 - uncork.js

// 演示 writable.cork() 方法的程序
const stream = require("stream");

// 使用 writable 创建数据流
const writable = new stream.Writable({
   // 从流中写入数据
   write: function(chunk, encoding, next) {
      // 将数据块转换为要显示的内容
      console.log(chunk.toString());
      next();
   }
});

// 写入数据
writable.write('Hi - 已打印此数据');

// 调用 cork() 函数
writable.cork();

// 再次写入一些数据
writable.write('Welcome to TutorialsPoint !');
writable.write('SIMPLY LEARNING ');
writable.write('This data will be corked in the memory');

// 从缓冲内存中刷新数据
writable.uncork()

输出

C:\home
ode>> node uncork.js Hi - This data is printed Welcome to TutorialsPoint !! SIMPLY LEARNING 此数据将保存在内存中

使用 uncork() 方法刷新缓冲内存后,将显示上述示例中的完整数据。


相关文章