📜  Node.js Stream writable.uncork() 方法

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

Node.js Stream writable.uncork() 方法

writable.uncork() 方法是 Stream 模块的内置应用程序编程接口,用于在调用 stream.cork() 方法时刷新所有缓冲数据。

句法:

writable.uncork() 

参数:此方法不接受任何参数。

返回值:如果正在调用此方法,则被塞住的数据将再次显示在输出中。

下面的例子说明了 Node.js 中writable.uncork() 方法的使用:

示例 1:

// Node.js program to demonstrate the     
// writable.uncork() method  
const stream = require('stream');
  
// Creating a stream and creating 
// a write function
const writable = new stream.Writable({
  
  // Write function with its 
  // parameters
  write: function(chunk, encoding, next) {
  
    // Converting the chunk of
    // data to string
    console.log(chunk.toString());
    next();
  }
});
  
// Writing data
writable.write('hi');
  
// Calling cork() function
writable.cork();
  
// Again writing some data
writable.write('hello');
writable.write('world');
  
// Calling uncork() function
writable.uncork();

输出:

hi
hello
world

在上面的例子中,被塞住的数据也会在输出中返回,因为之后会调用 uncork()函数。

示例 2:

// Node.js program to demonstrate the     
// writable.uncork() method  
const stream = require('stream');
  
// Creating a stream and creating 
// a write function
const writable = new stream.Writable({
  
  // Write function with its 
  // parameters
  write: function(chunk, encoding, next) {
  
    // Converting the chunk of
    // data to string
    console.log(chunk.toString());
    next();
  }
});
  
// Calling cork() function
writable.cork();
  
// Writing data
writable.write('hi');
  
// Calling cork() function
writable.cork();
  
// Again writing some data
writable.write('hello');
  
// Calling uncork function
// using nextTick()
process.nextTick(() => {
  
  // Calling uncork function
  writable.uncork();
  
  writable.uncork();
});

输出:

hi
hello

因此,您需要调用 uncork()函数的次数与调用 cork函数的次数相同。在上面的例子中,我们调用了两次 cork()函数,所以 uncork函数也被调用了两次。

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