RxJS将多个流组合成一个

时间:2017-12-10 20:16:58

标签: javascript angular rxjs reactive-programming rxjs5

我正在使用NGRX,我希望从商店中获取一些值,将它们合并为一个并推送到BE。

private enrichWith(event: TwoDimensionalCategory): Observable<any> {
    if (event.step || event.subCategory) {
      return Observable.merge(
        this.getCampaignId().first(),
        this.getCompanyIds().first(),
        this.getCampaignTitle().first(),
        this.getSectionCode().first(),
      );
    }
    return Observable.of({});
  }

我合并了商店的所有流

 private getCampaignId() {
    return this.store.select(getCampaignId).map(campaignId => {
      return { campaignId: campaignId };
    });
  }

  private getCampaignTitle() {
    return this.store.select(getCampaignTitle).map(campaignTitle => {
      return { campaignTitle: campaignTitle };
    });
  }
  private getSectionCode() {
    return this.store.select(getSectionCode).map(sectionCode => {
      return { sectionCode: sectionCode };
    });
  }

  private getCompanyIds() {
    return this.store.select(getCompanyIds).map(companyIds => {
      return { companyIds: companyIds };
    });
  }

然后我想在返回的值上执行合并:

return this.enrichWith(event) //做一些事情将所有项目合并到一个对象中。

我试过

this.enrichWith(event).mergeAll().flatMap(enrichedWithData => ...)

但是收到错误:

  

TypeError:您提供了一个无效的对象,其中包含一个流。

0 个答案:

没有答案