|
|
@@ -1973,3 +1973,19 @@ setImmediate(() => { console.log(`setImmediate`) })
|
|
|
|
|
|
上面 `setImmediate` 和 `setTimeout` 的执行乱序只会在初始化的时候出现
|
|
|
|
|
|
+## Stream
|
|
|
+
|
|
|
+流,什么是流?
|
|
|
+
|
|
|
+程序中的流和流水类似,不过流动的是数据,文件的二进制(字节)数据会源源不断的被读取到程序中
|
|
|
+
|
|
|
+流 是对连续字节的一种表现形式和抽象概念。流应该是可以读和可写的
|
|
|
+
|
|
|
+直接读写文件的方式虽然简单,但是无法控制一些细节的操作,比如从什么位置开始读、读到什么位置、一次性读取多少字节等,同时如果文件非常大(视频文件等)那么一次性读入也是不合适的。所以用流的方式,一次读取一点,读取一部分处理一部分,就方便一些
|
|
|
+
|
|
|
+node 中的很多对象都是基于流实现的
|
|
|
+
|
|
|
+- http模块的Request 和 Response 对象
|
|
|
+- process.stdout 对象
|
|
|
+
|
|
|
+所有的流都是 EventEmitter 的实例
|