gpt4 book ai didi

javascript - 为什么我可以插入可读流?

转载 作者:搜寻专家 更新时间:2023-10-31 23:20:29 24 4
gpt4 key购买 nike

在我发现“setEncoding”方法之前,我一直在使用一段与此类似的代码。在重构代码时,我想到了这个问题。

readable.push(chunk, 'base64')
readable.push(null)
readable.pipe(res)

推送不就是一种写数据的形式吗?我不应该无法将任何数据写入可读流吗?我知道每个数据都需要在某个时候写入(否则它将为空)和读取(或者它变得无用),但我认为 Node 会从我们那里抽象出来。

有人可以帮我解决这个问题吗?谢谢

最佳答案

当您从头开始创建新的可读流时,这会发挥作用。可读流需要从某个地方开始,并且需要有一种方法可以将数据放入新流中。当像您的问题一样执行 push() 时,您正在缓冲数据,直到它被读取,然后从流中刷新它,然后通过管道/读取到目的地以供使用。消费者将继续读取数据,直到命中“null”,这表明流已完成输出数据。

var stream = require('stream');
var readable = new stream.Readable(); // new empty stream.Readable
readable.push('some data');
readable.push(null); // Done writing data

要全面了解流在幕后如何工作以及各种类型的流,您应该阅读 Stream Handbook通过子堆栈。这应该可以回答您可能有的任何挥之不去的问题。

关于javascript - 为什么我可以插入可读流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38316821/

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