7

我目前正试图围绕 Node 的流。我想我明白了,但我不确定。让我困惑的是多米尼克·塔尔的这句话

流是最好的节点,也是最容易被误解的想法,[...]

由于 Dominic 绝对是一个非常聪明的人(而且我想比我更聪明),我不确定我是否真的正确理解了流,或者我是否错过了重点 ;-)。因此,我想解释一下我是如何理解流的,并请您批准或拒绝。

我对流的基本理解是,流是将数据从源传输到目标的抽象包装器。有可读可写流和可读写的双工流。这个想法是抽象出实际的源或目标,以便您可以专注于处理流,而无需知道您正在处理的实际资源是什么。您只是在访问一个流以进行读取和/或写入。

我对 Node.js 流的理解是否正确? 基本上,这与 .NET 中的流的想法相同(这是我过去 12 年左右的背景)。 Node.js 流与 .NET 中的流有何不同?

举个例子:如果我想从文件或网络资源中读取,我只是使用流将实际源抽象出来,然后从该流中读取。我什至可以更改源代码,但我的流式读取代码仍然可以以完全相同的方式工作。这个对吗?

4

1 回答 1

12

我认为你做对了。Node 中的流就像花园软管一样工作。您可以连接源和目标(作为可读/可写或双工流),还可以将流的输出连接到另一个流的输入,进一步扩展数据的传输方式。

Substack在去年的 LXJS 会议上就 Node.js 中的 Streams 做了一个精彩的演讲:
LXJS 2012 - James Halliday - Harnessing The Awesome Power Of Streams

它非常压缩(您必须不时暂停视频,因为他的实时编码速度非常快),但对流的工作方式给人留下了很好的印象。

于 2013-01-27T19:34:08.903 回答