合并流并行与串行

时间:2018-01-04 12:16:32

标签: javascript node.js

我在gulpfile中有两个流。

const merge2 = require('merge2');

let stream1 = gulp.src('file1.txt');
let stream2 = gulp.src('file2.txt');

然后我将合并的流输出到目的地(有各种转换,为清楚起见省略了这些转换)。

let combined = ... \\ merge the streams, using one of the methods
                   \\ shown below. then,
combined.pipe(gulp.dest('build'));

我使用merge2合并两个流。 API指定了两种方法:

// parallel
combined = merge2([stream1, stream2]);

或者,

// serial
combined = merge2(stream1, stream2);

串行并行合并为我生成相同的输出。

据我所知,两种合并方法之间必须存在差异。我检查了Node.js's streams API和其他各种来源,但是,我找不到任何关于这两种方法差异的文档。

有人能让我知道流的并行与串行合并之间的区别吗?

1 个答案:

答案 0 :(得分:1)

实际上,没有,没有区别。

如果您不提供数组,merge2将自行完成,将非数组参数转换为数组。出于可用性原因,可能存在这种可能性。见第43行来源:

if (!Array.isArray(streams)) streams = [streams]

https://github.com/teambition/merge2/blob/master/index.js#L43