在Node.js中有条件地管道传输流

5

我希望以一种简洁的方式对流进行条件性处理,这里所说的行为是指:

if (someBoolean) {

  stream = fs
    .createReadStream(filepath)
    .pipe(decodeStream(someOptions))
    .pipe(writeStream);

} else {

  stream = fs
    .createReadStream(filepath)
    .pipe(writeStream);

}

我已经准备好了所有流,如果 someBoolean 是 true,我想要将另一个流添加到管道中。
然后我尝试使用 detour-stream 解决问题,但不幸的是没有成功设置。我使用类似于 gulp-if 的符号表示方法,因为这被提及为灵感来源:
var detour = require('detour-stream');

stream = fs
  .createReadStream(filepath)
  .detour(someBoolean, decodeStream(someOptions))
  .pipe(writeStream);

但是,不幸的是,这只会导致一个错误:

  .detour(someBoolean, decodeStream(someOptions))
 ^
TypeError: undefined is not a function

有什么想法吗?
1个回答

5

1
这显然是个事实。:-) 我没想到,谢谢! - Julian
现在似乎不起作用了,每当使用detour时我的流就会过早结束,但是当我硬编码时它可以正常工作。 - p10ben

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接