过去6个月左右,我一直在使用Node.js流,到目前为止我对它们非常满意。到目前为止我遇到的所有问题,我已经能够使用标准模板解决:
A.pipe(B).pipe(C);
然而,我目前的问题需要链接不同的流"管道"基于运行时逻辑。例如,我想做的事情如下:
var basePipeline = A.pipe(B).pipe(C);
if(flowRate > 0.0) {
basePipeline.pipe(D).pipe(E).pipe(F);
} else {
basePipeline.pipe(G).pipe(H).pipe(I);
}
以上可能吗?或者,我是否需要以完整的方式单独创建两个流:
if(flowRate > 0.0) {
A.pipe(B).pipe(C).pipe(D).pipe(E).pipe(F);
} else {
A.pipe(B).pipe(C).pipe(G).pipe(H).pipe(I);
}
感谢您的建议!
答案 0 :(得分:1)
你可以做的是总是通过所有溪流, 但是如果必须运行或跳过此步骤,则保留一个存储的数组。 例如:
如果您的烟斗是这样的 A - > B - > C - > D - > E - > F - > ħ
你有一个哈希
A:0
B:1
C:0
D:1
...
...
这意味着您将只运行管道B和D.
在管道开始时,检查当前管道是否在哈希
中// step B
pipe(function(data)){
if(steps['B'] === 1){
// do something
}
}
使用这种方法,您可以使用固定管道,但您可以随时更改流量。