![](/img/trans.png)
[英]Set V8 as JavaScript run-time in VS Code (instead of Node.js)
[英]Chaining Node.js streams with run-time logic
在过去大约六个月的时间里,我一直在使用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
}
}
使用这种方法,您可以固定管道,但可以随时更改流量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.