【发布时间】:2014-03-13 03:20:36
【问题描述】:
我想知道如果您将两个不同的读取流同时通过管道传输到同一个目的地,node.js 会如何运行。例如:
var a = fs.createReadStream('a')
var b = fs.createReadStream('b')
var c = fs.createWriteStream('c')
a.pipe(c, {end:false})
b.pipe(c, {end:false})
这是否将 a 写入 c,然后将 b 写入 c?还是把一切都搞砸了?
【问题讨论】:
-
流建立在事件发射器之上。这允许读取数据块并将其传输到您正在写入的文件。假设每个块都可以从任何管道到达是最安全的,因此您在文件中获得的内容可能会出现乱码。我的机器上的测试显示了 Node v0.11.10 上小文件的简单连接。即便如此,我还是会避免这样做。
-
这也是我所期望的。所以我必须等到a结束才能开始b。