javascript - Node.js WriteStream 同步

标签 javascript node.js

我正在 node.js 中编写一个纯同步的单线程命令行程序,它需要编写一个二进制文件,为此我使用 WriteStream。我的使用模式是这样的:

var stream = fs.createWriteStream(file)
stream.write(buf1)
stream.write(buf2)

这似乎可行,但文档说它是异步的,我想确保我编写的代码没有 99% 的时间都有效。我不关心数据的确切写入时间,只要它是按指定的顺序写入的,并且不迟于程序退出的时间,并且数据量很小,因此速度和内存消耗都不是问题。

我见过提到 stream.end() 但没有它似乎也可以工作回调,因为它可能最终在所有数据写入之前被调用。

我的方法是否正确(假设我想要完全同步)还是需要注意什么?

最佳答案

您可以这样做,唯一的问题可能是您为同一路径创建两个或多个并发流:来自不同流的写入顺序将是未定义的。顺便说一句,node中有一个同步fs写流实现:fs.SyncWriteStream。它是私有(private)的,需要 fd 作为参数,但如果你真的想要它......

关于javascript - Node.js WriteStream 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24468830/

相关文章:

mysql - Node.js orm2 在循环中创建元素

javascript - AngularJS - 即使通过 ng-if 隐藏文件也保持选中状态

javascript - 给定轴上的所有系列必须具有相同的数据类型 - 在图表上显示数据时间时出现错误消息

javascript - 菜单 onclick 显示和隐藏一个 div

javascript - 指向 Express 路线的动态表单操作

javascript - 在 node.js 的正则表达式中指定或

javascript - 用于交互式 map 的 Flash 与 JavaScript

javascript - 具有 fwd 和 bck 功能的纯 javascript 图片库

node.js - Passport-http 错误请求

node.js - 如何在 Aurelia javascript 应用程序中加载 google maps javascript api?