使用Node JS将Uint8Array转换为Stream

Uint8Array生JavaScript Uint8Array转换为可读或变换Stream的最佳方式是什么?

我想出了如何把Uint8Array的成为缓冲区,不知道这是否有帮助:

 var uint8array = new Uint8Array(); var buffer = new Buffer(uint8array); 

标准的方法是用一个_read方法定义一个可读的stream:

 var Stream = require('stream'); var myStream = new Stream.Readable(); var i = 0; var data = [1, 2, 3, 4]; myStream._read = function(size) { var pushed = true; while (pushed && i < data.length) { pushed = this.push(data[i++]); } if (i === data.length) { this.push(null); } }; myStream.pipe(somewhere); 

但是,您也可以使用事件stream的readArray方法:

 var es = require('event-stream'); var data = [1, 2, 3, 4]; var myStream = es.readArray(data); myStream.pipe(somewhere); 

是什么使它对我的工作是使用Duplex而不是Readable (功劳为Brian Mancini ):

 import { Duplex } from 'stream'; // Or non ES6 syntax: // const Duplex = require('stream').Duplex let stream = new Duplex(); stream.push(buffer); stream.push(null); stream.pipe(process.stdout);