2017-05-20 10 views
0

私は無限のバイナリストリームを持っています。今は10000文字ごとにバッファしたいと思っています。Observableで文字列ストリームをバッファリングする方法は?

theFunctionKeepsStreamingString() 
.bufferWithCount(10000) //this is not working 
.map((data)=>{ 
    //dealing with each 10000 characters 
}); 

しかし、このように動作していないようです。これはどうすればいいですか?

+1

* *非常に一般的な説明 "それはこのように動作していません"。どのように動作していないのですか?使用しているRxJSのバージョンは何ですか? – martin

+0

rxjs 4 dyntaxを使用していました。これは変更されたようですが、ドキュメント内では更新されていません.... –

答えて

1

ここに問題はありません。

Plunkrのテストを作った:

const { Observable } = Rx; 

const characters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']; 

Observable 
    .from(characters) 
    .bufferCount(3) 
    .do(console.log) 
    .subscribe(); 

そして、それは期待どおりに動作:
enter image description here

+0

あなたは正しいですが、私の問題はtheFunctionKeepsStreamingString()でした。この関数は実際には無限のバイナリデータストリームレスポンスを持つポストリクエストです。 AngularのHTTPはObservableのような無限のデータストリームをサポートしているようには見えません。 –

+0

あなたはそのためにウェブソケットを使うべきです – Maxime

+0

しかし、私はサーバー側を制御することはできません。私は他の質問で私の問題を解決した –

関連する問題