node.js - 将两个可读流写入同一个可写流

B T*_*B T 5 stream node.js

我想知道如果您同时将两个不同的读取流传输到同一目的地,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})
Run Code Online (Sandbox Code Playgroud)

这是将a写入c,然后将b写入c吗?或者它把一切都搞乱了?

小智 4

您希望将第二次读取添加到事件监听器中,以便第一次读取完成。

var a = fs.createReadStream('a');
var b = fs.createReadStream('b');
var c = fs.createWriteStream('c');
a.pipe(c, {end:false});
a.on('end', function() {
  b.pipe(c)
}
Run Code Online (Sandbox Code Playgroud)

  • 这可以通过动态数量的可读流来实现吗?在可读流数组上的某种循环中? (2认同)