2017-01-16 58 views
0

私はhighlandストリームストリーミングストリングを持っています。今私は外部ライブラリ(私の場合はAmazon S3)でそれを消費したい、それはSDKのために私は標準ノードReadableストリームが必要です。高地のストリームを読み込み可能なストリームに変換するには?

ハイランドストリームをReadStreamに変換する方法はありますか?それとも私はそれを自分で変えなければならないのですか?

答えて

1

ハイランドのストリームを(現在のハイランドのドキュメントに従って)ノードストリームに変換する組み込みの方法はないようです。

しかし、高地ストリームをNode.jsストリームにパイプすることができます。

したがって、標準のPassThroughストリームを使用して、2行のコードでこれを達成できます。

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) { 
 
\t console.log(data); // a, b, c or <Buffer 61> ... if you omit objectMode 
 
});

これはオブジェクフラグに応じて文字列またはバッファを放出します。

関連する問題