【问题标题】:How to combine multiple transform stream into one in nodejs如何在nodejs中将多个转换流合并为一个
【发布时间】:2014-11-10 10:34:44
【问题描述】:

我有以下代码 sn-p

function func1(){
  return  makeReadbleStream1()
    .pipe(transformA)
    .pipe(transformB)
    .pipe(transformC)
    .pipe(X);
}

function func2(){
  return  makeReadbleStream2()
    .pipe(transformA)
    .pipe(transformB)
    .pipe(transformC)  
    .pipe(Y);
}

函数 1 和 2 共享一个共同的逻辑,即通过变换 A、B 和 C。基于 DRY 的原理,我认为最好将逻辑提取到函数 combineTransformABC 中。但是,在我看来,没有明显的方法可以基于 transformA、B 和 C 来实现这个函数,这样我就可以重构代码如下。

function func1(){
  return  makeReadbleStream1()
    .pipe(combinedTranformABC)
    .pipe(X);
}

function func2(){
  return  makeReadbleStream2()
    .pipe(combinedTranformABC)
    .pipe(Y);
}    

有什么想法吗?

【问题讨论】:

标签: node.js stream


【解决方案1】:

为什么不这样做:

function applyTransforms(stream){
    return stream.pipe(transformA)
        .pipe(transformB)
        .pipe(transformC);
}
function func1(){
    return applyTransforms(makeReadbleStream1()).pipe(X);
}
function func2(){
    return applyTransforms(makeReadbleStream2()).pipe(Y);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多