gpt4 book ai didi

javascript - JavaScript 中的流

转载 作者:行者123 更新时间:2023-12-02 16:03:49 24 4
gpt4 key购买 nike

我正在使用 gulp,并且想创建一个可以通过管道传输的函数,该函数将输入传递到输出并向控制台写入一行。

例如:

   this.src('/foo')
.pipe(myFunction)
.pipe(...)

有人可以帮助我理解 myFunction 需要是什么样子吗?

以下代码使流停止运行。如何确保流数据继续传递?

function myFunction(obj) {
var stream = new Stream.Transform({objectMode: true});

stream._transform = function () {
console.log('foo bar bam baz');
};

return stream;
}

最佳答案

毫无疑问,转换流意味着数据的转换。一个例子是 zlib 流,它压缩写入其中的数据,并且可以从同一个流中读出压缩后的字节。

您正在创建一个不转换任何内容的转换流 - 这很好。但您仍然需要传递“转换后的值”(在本例中为相同的值)。在当前形式中,您的流仅消耗放入的内容。 _transform 函数接收 3 个参数:数据、编码和回调,必须像这样调用:

function myFunction(obj) {
var stream = new Stream.Transform({objectMode: true});

stream._transform = function (data, encoding, callback) {
console.log('foo bar bam baz');
callback(null, data);
};

return stream;
}

来源:https://nodejs.org/api/stream.html#stream_transform_transform_chunk_encoding_callback

关于 Node 流的优秀指南: https://github.com/substack/stream-handbook

关于javascript - JavaScript 中的流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30963799/

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