在过去 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);
}
感谢您的建议!
最佳答案
你能做的就是始终跳过所有流, 但是您保留一个数组来存储是否必须运行或跳过此步骤。 例如:
如果你的管道是这样的 A -> B -> C -> D -> E -> F -> H
你有一个哈希
A:0
B:1
C:0
D:1
...
...
这意味着您将仅运行管道 B 和 D。
在管道开始时,检查当前管道是否在哈希中
// step B
pipe(function(data)){
if(steps['B'] === 1){
// do something
}
}
通过这种方法,您拥有固定的管道,但您可以即时更改流量。
关于javascript - 使用运行时逻辑链接 Node.js 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36134447/