2017-09-29 8 views
1

2つの観測可能なストリームを1つのストリームに結合しようとしています。combineLatestです。 .map()関数は、結果のストリームでは機能しません。そして動作しないと、私は以下の例では何も記録されていないことを意味します。もう1つは、.subscribe()関数の.map()関数を切り替えると、すべて正常に機能します。私の観測は、angularfire2ライブラリを使って火災基地から来ています。私もmap関数をインポートし、他のObservableストリームでも動作します。Rxjs:combineLatestでマップメソッドが実行されない

const placeList = this._db.list(URL) 
    .map(this.flattenJSON); 
const placeImages = this._db.list(URL); 
Observable.combineLatest(placeList, placeImages) 
    .map(response => { 
     console.log(response); 
     return response; 
    }); 

subscribe機能が働き、なぜ誰もが知っている、とmapはないでしょうか?そして、誰も私が2つのfirebase Observableストリームをマージして、このストリームをどのようにマップすることができるかについてアドバイスをしていますか? angularfire2の観測可能なストリームが終了しないことを覚えておいてください。

+1

あなたはまだあなたが通知されませう契約をしなくても...、観察に加入しなければなりません。 – Catalyst

+1

ああ、それは面白い! 'map'関数の後に' .subscribe'を連鎖しようとしましたが、今はロギング中です!私はこれを知らなかった。アドバイスをありがとう、最終的にそれを考え出した。答えを作成したら、それを受け入れるでしょう – sjbuysse

+0

完了。ありがとう:) – Catalyst

答えて

0

実際に実行されるようにするには、オブザーバブルを常に購読する必要があります。ただ、マップ後subscribe()をチェーン:

const placeList = this._db.list(URL) 
    .map(this.flattenJSON); 
const placeImages = this._db.list(URL); 
Observable.combineLatest(placeList, placeImages) 
    .map(response => { 
     console.log(response); 
     return response; 
    }) 
    .subscribe(); 
関連する問題