私はAngular2アプリで書いたサービスでObservable(ContentServiceと呼ばれる)を見ていますが、これは次のようなものです):RxJS .flatmapを使用してAngular2で観測可能な2つのストリームを結合する
@Injectable()
export class ContentService {
constructor(private http:Http, private apiService:ApiService) {
this.content = this.http.get('src/i18n/en.json')
.map((res:Response) => {
let json: {} = res.json();
return mapData(json);
})
mapData() {
// function stuff to format data
}
は今、私は私の注入さapiServiceに電話をしたい、これはthis.content
によって生成されたものと同じ構造を持つJSONオブジェクトを返します。 this.content
はローカルのjsonファイルに由来し、apiStreamはサードパーティのAPI/httpフィードに由来することに注意してください。 apiServiceの結果を観察可能なthis.content
に連結(または追加)する必要があります。私はflapMapがこれの最善の方法だと思っていますが、私は構文ミスを犯しています。私はそのような新しいコンテンツを追加することを考えていた
this.content = this.http.get('src/i18n/' + this.userLang + '.json')
.map((res:Response) => {
let json: {} = res.json();
return mapData(json);
})
.flatMap(() => {
apiService.getAllCurrentListings().subscribe(response => {
return mapData(response);
})
});
しかし、これは間違いを明らかにしています。 .flapMap
のようなAPIサービスを呼びたいのですが、私が望むデータが得られるので、私は明らかに構文エラーを作りました。元のthis.content
呼び出し結果にapiServiceデータを追加するにはどうすればよいですか?
事前に感謝します。
おかげで、私は実際にforkJoinで行くことにしましたapiサービス –