在observable中使用observable

时间:2018-02-06 14:10:43

标签: javascript rxjs observable

我和观察者有点关系,我对他们有愚蠢的问题。

我的商店里有2个可观察物:

  @select() fiches;
  @select() langs;

现在我想过滤fiches,但取决于可观察的langs。 我试过这样的事情:

private getFiches(): Observable<Fiche[]> {
      return this.fiches
      .map(fiches => fiches.filter(fiche => fiche.lang === this.langs.lang))
      .do(fiches => console.log(fiches));
}

但显然它不能那样工作。

export interface Fiche {
    id: number;
    lang: string;
    translation: string;
}
export interface Langs {
    lang: string;
}

1 个答案:

答案 0 :(得分:0)

您可以使用combineLatest

private getFiches(): Observable<Fiche[]> {
  return Observable.combineLatest(this.fiches, this.langs)
    .map(([fiches, langs]) => fiches.filter(fiche => /* … */));
}

我遗漏了/* … */,因为我不清楚你想如何过滤“数组中的数组”,但假设你这样做,那就是你可以做到的。