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


writable.cork() 方法用於強制將所有寫入的資料緩衝在儲存器中。只有當呼叫 stream.uncork() 或 stream.end() 方法後,此緩衝資料才會從緩衝儲存器中刪除。

語法

cork()

writeable.cork()

uncork()

writeable.uncork()

引數

由於它會緩衝寫入的資料。需要的唯一引數將是可寫資料。

示例

建立一個名為 cork.js 的檔案並複製下面的程式碼片段。建立檔案後,使用以下命令執行此程式碼,如下例所示 −

node cork.js

cork.js

 線上演示

// Program to demonstrate writable.cork() method
const stream = require('stream');

// Creating a data stream with writable
const writable = new stream.Writable({
   // Writing the data from stream
   write: function(chunk, encoding, next) {
      // Converting the data chunk to be displayed
      console.log(chunk.toString());
      next();
   }
});

// Writing data
writable.write('Hi - This data is printed');

// Calling the cork() function
writable.cork();

// Again writing some data
writable.write('Welcome to TutorialsPoint !');
writable.write('SIMPLY LEARNING ');
writable.write('This data will be corked in the memory');

輸出

C:\home
ode>> node cork.js Hi - This data is printed

只有使用 cork() 方法寫入的資料才會被列印,而其餘資料將被緩衝在緩衝儲存器中。下面的示例顯示瞭如何從緩衝儲存器中取消緩衝以上資料。

示例

讓我們看另一個關於如何進行取消緩衝的示例 - uncork.js

 線上演示

// Program to demonstrate writable.cork() method
const stream = require('stream');

// Creating a data stream with writable
const writable = new stream.Writable({
   // Writing the data from stream
   write: function(chunk, encoding, next) {
      // Converting the data chunk to be displayed
      console.log(chunk.toString());
      next();
   }
});

// Writing data
writable.write('Hi - This data is printed');

// Calling the cork() function
writable.cork();

// Again writing some data
writable.write('Welcome to TutorialsPoint !');
writable.write('SIMPLY LEARNING ');
writable.write('This data will be corked in the memory');

// Flushing the data from buffered memory
writable.uncork()

輸出

C:\home
ode>> node uncork.js Hi - This data is printed Welcome to TutorialsPoint ! SIMPLY LEARNING This data will be corked in the memory

上述示例中的完整資料在使用 uncork() 方法重新整理緩衝記憶體後顯示。

更新時間: 20-5-2021

553 人次瀏覽

Kickstart Your Career

完成課程以獲得認證

開始學習
廣告
© . All rights reserved.