Node.js WriteStream同步

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

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

这似乎工作,但文档说它是asynchronous的,我想确保我不写代码,工作99%的时间。 只要数据按指定顺序写入,不迟于程序退出时,我不关心数据写入的时间,数据量也很小,所以速度和内存消耗不成问题。

我已经看到stream.end()提及,但它似乎没有它的工作,我也看到了这样的build议,如果你不使用callback可能实际上是一个坏主意,因为它可能最终会被召唤数据被写入。

我的方法是否正确(因为我想要纯粹的同步)还是有什么我需要注意的?

       

网上收集的解决方案 "Node.js WriteStream同步"

你可以这样做,唯一的问题是如果你为同一个path创build两个或多个并发stream:不同stream的写入顺序将是不确定的。 顺便说一下,节点中有一个同步的fs写入stream实现: fs.SyncWriteStream 。 这是一种私人的,需要fd作为参数,但如果你真的想要它…