- Mastering Node.js(Second Edition)
- Sandro Pasquali Kevin Faaborg
- 178字
- 2021-07-02 19:28:49
Using PassThrough streams
This sort of stream is a trivial implementation of a Transform stream, which simply passes received input bytes through to an output stream. This is useful if one doesn't require any transformation of the input data, and simply wants to easily pipe a Readable stream to a Writable stream.
PassThrough streams have benefits similar to JavaScript's anonymous functions, making it easy to assert minimal functionality without too much fuss. For example, it is not necessary to implement an abstract base class, as one does with for the _read method of a Readable stream. Consider the following use of a PassThrough stream as an event spy:
const fs = require('fs');
const stream = require('stream');
const spy = new stream.PassThrough();
spy
.on('error', (err) => console.error(err))
.on('data', function(chunk) {
console.log(`spied data -> ${chunk}`);
})
.on('end', () => console.log('\nfinished'));
fs.createReadStream('./passthrough.txt').pipe(spy).pipe(process.stdout);
Normally a Transform or Duplex stream is what you want (where you can set up a proper implementation of _read and _write), but in certain scenarios, such as tests, it can be useful to place "watchers" on a stream.
- Twilio Cookbook
- 網絡故障現場處理實踐(第4版)
- OpenLayers Cookbook
- 物聯網與無線傳感器網絡
- NB-IoT物聯網技術解析與案例詳解
- 物聯網安全技術
- Microsoft Dynamics CRM 2011 Applications(MB2-868) Certification Guide
- WordPress Web Application Development
- 4G小基站系統(tǒng)原理、組網及應用
- jQuery Mobile Web Development Essentials
- 網絡利他行為研究:積極心理學的視角
- 網絡安全之道
- 工業(yè)以太網技術:AFDX/TTE網絡原理、接口、互連與安全
- 網絡信息安全工程技術與應用分析
- 學術虛擬社區(qū)用戶社會化交互行為研究