私はAngular 4とRxJSの問題を掘り下げました。ここで私のコードは、問題は、http.post
要求オブザーバブルは、チェーンの次の、map()
に何も発光していないです。 POSTは無限の応答を得て、それはMotion JPEGデータのストリームです。今私はデータを扱わなければなりません、それぞれ500KBが転送されたと言う。私の問題は、Observableが何も放出していなければ、データで何もできないということです。Endless HTTP Stream Observableはデータ転送以外のデータを送信しません
どのようにして、このような角張ったHTTP機能をチェーンの次の部分に送信するのですか?
postActionGivenDataBinaryResponse(url:string, data:string) : Observable<any>{
let headers = new Headers ({
'Content-Type' : 'application/json;charset=utf-8'
}) ;
let options = new RequestOptions({
headers : headers,
responseType: ResponseContentType.ArrayBuffer
}) ;
//return binary data as is no json
return this.http.post(url, data, options) //suspecting here is not emitting anything due to unknown configuration issue.
.map(this.extractBinaryData)
.catch(this.handleError) ;
}
private extractBinaryData(res:Response){
console.log('Dealing with data in the com service.') ; // this never runs
return res ;
}
私は上記の関数をこのように呼びます。応答は無限のバイナリデータです。文字列配列として処理する必要があります。
this.mySubscription = this.comService.postActionGivenDataBinaryResponse(myurl,mydata)
.do(()=>{
console.log('Observable Passed data.') ; //this never runs.
})
.bufferCount(128000)
.map((data)=>{//process the data each 128kb chunk})
.subscribe();
私は質問が何であるか分かりません。あなたは 'postActionGivenDataBinaryResponse'をどこで呼びますか?あなたはどこの価値を期待していますか? –
@GünterZöchbauer、私は問題のために私のコードをコメントしました。その機能は単なるPOSTです。私はデータがチャンクによって放出されると期待していますが、今は放出されませんが、デバッグはデータが問題なく転送されることを示しています。理由を知る必要がある。あなたは角度Http.post方法が応答で受信すべてのバイトについて観測発光イベントを返されたドキュメントで見たのtomriddle_1234 @ –
?なぜあなたはその前提を作るのですか? –