gpt4 book ai didi

node.js - 如何在自定义 through2 流中内部链接流

转载 作者:太空宇宙 更新时间:2023-11-03 22:16:31 24 4
gpt4 key购买 nike

我正在 Node 中编写自己的流,它接收文本流并每行文本输出一个对象。最终结果应该是这样的:

fs.createReadStream('foobar')
.pipe(myCustomPlugin());

实现将使用 through2event-stream 让事情变得简单:

var es = require('event-stream');
var through = require('through2');
module.exports = function myCustomPlugin() {
var parse = through.obj(function(chunk, enc, callback) {
this.push({description: chunk});
callback();
});
return es.split().pipe(parse);
};

但是,如果我把它拆开,基本上我所做的是:

fs.createReadStream('foobar')
.pipe(
es.split()
.pipe(parse)
);

这是不正确的。有没有更好的办法?我可以继承 es.split() 而不是在实现中使用它吗?有没有一种简单的方法可以在没有事件流或类似的情况下实现线路分割?不同的模式效果会更好吗?

注意:我有意在函数内部进行链接,因为 myCustomPlugin() 是我试图公开的 API 接口(interface)。

最佳答案

根据之前接受的答案中的链接,让我走上正确的谷歌搜索轨道,如果您不介意另一个模块,这里有一个较短的版本:stream-combiner (read the code 让自己相信正在发生的事情!)

var combiner = require('stream-combiner')
, through = require('through2')
, split = require('split2')

function MyCustomPlugin() {
var parse = through(...)

return combine( split(), parse )
}

关于node.js - 如何在自定义 through2 流中内部链接流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26856874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com