gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 04:07:52 25 4
gpt4 key购买 nike

我有一个highland流式传输字符串。我想通过外部库(在我的例子中是 Amazon S3)使用它,对于它的 SDK,我需要一个标准 node Readable Stream .

有没有办法将高地流转换为开箱即用的 ReadStream ?还是我必须自己改造它?

最佳答案

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

但是 highland 流可以通过管道传输到 Node.js 流中。

所以你可以使用标准 PassThrough只需 2 行代码即可实现此目的。

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

'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
});

它将根据 objectMode 标志发出字符串或缓冲区。

关于javascript - 如何将高地流转为节点可读流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41679008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com