如何将高地流转换为节点可读流?

k0pernikus

我有一个高地流串流。我想通过一个外部库(在我的情况下为Amazon S3)使用它,对于它的SDK,我需要一个标准节点Readable Stream

有没有一种方法可以将高地流转换为ReadStream开箱即用?还是我必须自己改造它?

安东尼奥·纳尔克维奇(Antonio Narkevich)

似乎没有内置的方法可以将高地流转换为Node Stream(根据当前的高地文档)。

但是高地流可以通过管道传递到Node.js流中。

因此,您可以使用标准的PassThrough流在两行代码中实现此目的。

PassThrough流基本上是转发器。这是Transform流(可读和可写)的简单实现。

'use strict';

const h = require('highland');
const {PassThrough, Readable} = require('stream');

let stringHighlandStream = h(['a', 'b', 'c']);

let readable = new PassThrough({objectMode: true});
stringHighlandStream.pipe(readable);

console.log(stringHighlandStream instanceof Readable); //false
console.log(readable instanceof Readable); //true

readable.on('data', function (data) {
	console.log(data); // a, b, c or <Buffer 61> ... if you omit objectMode
});

它将根据对象模式标志发出字符串或缓冲区。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章