node.js - Node js-将数据写入可写流

标签 node.js stream

在我的 Node 应用程序中,我使用 createWriteStream 方法中的 write 方法将数据写入文件。现在我需要查找特定流的写入是否完成。我怎样才能找到它。

var stream = fs.createWriteStream('myFile.txt', {flags: 'a'});
var result = stream.write(data);

writeToStream();
function writeToStream() {
  var result = stream.write(data + '\n');
  if (!result) {
    stream.once('drain',writeToStream());
  }
}

每次写入完成时我都需要调用其他方法。我该怎么做。

最佳答案

来自 node.js WritableStream.write(...) documentation你可以给“write”方法一个回调,当写入的数据被刷新时调用:

var stream = fs.createWriteStream('myFile.txt', {flags: 'a'});
var data = "Hello, World!\n";
stream.write(data, function() {
  // Now the data has been written.
});

请注意,您可能实际上不需要等待每个“写入”调用完成,然后再将下一个调用排队。即使 "write"方法返回 false,您仍然可以调用后续写入,并且 Node 会将挂起的写入请求缓冲到内存中。

关于node.js - Node js-将数据写入可写流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19051510/

相关文章:

javascript - 为什么 NodeJS 对大数加法不准确?

node.js - 从nodejs访问O_RDONLY,O_WRONLY,...

node.js - 播放/暂停音频流 NodeJs

node.js - 在 react native 中播放来自 Node 流的音频

javascript - IF 语句和异步函数的控制流程

javascript - 如何在 Node.js 中每秒发出一个 http 请求?

c# - FileStream,从大文件中读取数据 block 。文件大小大于 int。如何设置偏移量?

java - 相同的输入流可以在流读取器中使用吗

c# - 解压缩流

javascript - 如何使 ChaiJS 'expect' 函数在 NodeJS 'test' 文件夹内的所有文件中可用?