アンソニー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]) => {
// ...
})