どのように私は2つの観測順から値を得ることができますか?

アンソニーCloquette:

私はRxJsと初心者です。

私の目的は、(1)最初のコールバックエンドを作成し、値を取得し、(2)返された値に基づいて、他のコールバックエンドを作り、アレイの両方の値を返します。

私が購読すると、私は両方の値を取得したいと思います:建物とbuildingUnit。

これは私がこの目的を達成しようとする方法です:

this._buildingsService.loadBuilding(1).pipe(
  mergeMap((b: Building) => {
    if (b) {
      return this._buildingUnitsService.loadBuildingUnit(b);
    }
  })
).subscribe((bu: BuildingUnit) => {

});

私は戻って取得したいと思い、その結果の種類:

this._buildingsService.loadBuilding(1).pipe(
  mergeMap((b: Building) => {
    if (b) {
      return this._buildingUnitsService.loadBuildingUnit(b);
    }
  })
).subscribe((b: Building, bu: BuildingUnit) => {

});

ありがとうございました

マーティン:

あなただけの配列に第2の値をマッピングすることができます。

this._buildingsService.loadBuilding(1).pipe(
  mergeMap((b: Building) => {
    if (b) {
      return this._buildingUnitsService.loadBuildingUnit(b).pipe(
        map(c => [b, c]),
      );
    }
    return of([b]); // or `[b, undefined]` to be more obvious
  })
  .subscribe(([b, c]) => {
    // ...
  })

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=31178&siteId=1
おすすめ