stream

即水流,但默认没有水

stream.write可以让水流中有水(数据)

每次写的小数据叫做chunk (块)

产生数据的一段叫做source (源头)

得到数据的一段叫做sink (水 池)

49Node.js Stream浅析 - 图1

stream它将文件分为小块逐渐上传,而不是整个一次性上传,这样的好处有,降低内存的使用,但是上传或下载的时间变长。

管道

两个流可以用一个管道相连,stream1的末尾连接.上stream2的开端,只要stream1有数据,就会流到stream2。

  1. stream1.pipt(stream2)

它也可以通过事件来实现

  1. // stream1 已有数据就给stream2
  2. stream1.on('data', (chunk)=>{
  3. stream2.write(chunk)
  4. })
  5. // stream1停止stream2也随即停止
  6. stream1.on('end', ()=>{
  7. stream2.end()
  8. })

Stream 对象的原型、事件