Node.js 中的流 writable.cork() 和 uncork() 方法
该方法用于强制将所有写入的数据缓存在内存中。这个缓冲的数据只会在或方法被调用后从缓冲存储器中删除。writable.cork()stream.uncork()stream.end()
语法
cork()
writeable.cork()
uncork()
writeable.uncork()
参数
因为它缓冲写入的数据。只有需要的参数才是可写数据。
示例
创建一个具有名称的文件-cork.js并复制以下代码片段。创建文件后,使用以下命令运行此代码,如下例所示-
node cork.js
软木塞
//演示writable.cork()方法的程序 const stream = require('stream'); //创建具有可写性的数据流 const writable = new stream.Writable({ //从流中写入数据 write: function(chunk, encoding, next) { //转换要显示的数据块 console.log(chunk.toString()); next(); } }); //写入数据 writable.write('Hi - This data is printed'); //调用cork()函数 writable.cork(); //再次写入一些数据 writable.write('Welcome to nhooo !'); writable.write('SIMPLY LEARNING '); writable.write('This data will be corked in the memory');输出结果
C:\home\node>> node cork.js Hi - This data is printed
仅cork()打印方法之间写入的数据,而其余数据将在缓冲存储器中塞满。下面的例子展示了如何从缓冲存储器中解开上述数据。
示例
让我们再看一个例子uncork()-uncork.js
//演示writable.cork()方法的程序 const stream = require('stream'); //创建具有可写性的数据流 const writable = new stream.Writable({ //从流中写入数据 write: function(chunk, encoding, next) { //转换要显示的数据块 console.log(chunk.toString()); next(); } }); //写入数据 writable.write('Hi - This data is printed'); //调用cork()函数 writable.cork(); //再次写入一些数据 writable.write('Welcome to nhooo !'); writable.write('SIMPLY LEARNING '); writable.write('This data will be corked in the memory'); //从缓冲内存中刷新数据 writable.uncork()输出结果
C:\home\node>> node uncork.js Hi - This data is printed Welcome to nhooo ! SIMPLY LEARNING This data will be corked in the memory
使用该uncork()方法刷新缓冲内存后,将显示上述示例中的完整数据。