使用运行时逻辑链接节点.js流
Chaining Node.js streams with run-time logic
在过去的 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
}
}
使用这种方法,您有固定的管道,但您可以动态更改流量。
相关文章:
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 节点.js将变量显示为 HTML
- 如何解决'窗口未定义'终端上的节点JS出错
- S3文件上传文件对象使用节点js
- 在节点 js 中使用护照本地模块验证(登录)密码时出错
- 嵌套的promise节点js
- 使用节点JS发送电子邮件
- 节点JS重定向循环
- 起始节点.js用于并行的线程池
- 获取图像节点js的主色
- 调整节点js中的图像大小
- 节点JS express和控制台输出到命令行与浏览器
- 节点JS:时间机器坏了——timekeeper.travel不做时间旅行
- 如何访问日期并将其插入数据库?节点.JS&MongoDB
- 节点.js快速删除 req.body 不起作用
- 节点.js中的嵌套异步操作
- 如何在核心php应用程序中使用节点js json Web令牌库
- 使用节点js的Bootstrap和Jquery
- 节点.js加密输入/输出类型
- 节点.js在不可能的地方打印“未定义”