【发布时间】:2020-05-13 04:30:48
【问题描述】:
我正在尝试了解如何最好地有条件地将流通过管道传输到 Transform 或类似而不使用 3rd 方库。
理想情况下我想做这样的事情
const transformA, transformB = // my transforms
const booleanA, booleanB = // my various conditions
const stream = new Readable()
stream.push('...') // my content
return stream
.pipe(booleanA && transformA)
.pipe(booleanB && transformB)
我曾尝试使用 detour-stream、ternary-stream 等库进行此操作,但我遇到了各种奇怪的副作用,其中不应该调用转换、抛出错误等,这让我想知道人们如何在不增加这些库的复杂性的情况下完成这类事情。
在此期间,我通过采用命令式方法解决了这个问题,在每个条件下重新分配流。
let stream = // get my stream
if (condition) stream = stream.pipe(someTransform)
if (otherCondition) stream = stream.pipe(otherTransform)
return stream
这很好,但我仍然很好奇是否可以完成不可变和函数式方法
感谢观看和阅读
【问题讨论】:
标签: node.js hapijs node-streams