根据数据将数据从1个流传输到2个不同的流

时间:2019-05-28 03:42:18

标签: javascript node.js stream

我有1个数据流带有2个不同前缀的前缀。让我们说1和0。我希望所有以1为前缀的数据仅通过管道传输到流A,将0传输到流B。

我曾想过只使用2个仅允许数据具有正确前缀的数据通过的变换。我只是想知道是否有一种更优雅的方法。

//an idea

//transformA is a transform that only pushes data that is prefixed with 1
//transformB is a transformt hat only pushes data that is prefixed with 2
incomingStream.pipe(transformA).pipe(destinationA)
incomingStream.pipe(transformB).pipe(destinationB)

1 个答案:

答案 0 :(得分:0)

也许使用for-awaitif

for await (const chunk of incomingStream) {
    if(chunk.startsWith("1")) {
        destinationA.write(transformA(chunk));
        continue;
    }

    if(chunk.startsWith("2")) {
        destinationB.write(transformB(chunk));
        continue;
    }

    destinationElse.write(chunk);
}