我正在为旅行社构建一个 Angular 应用程序。在酒店列表页面中,我需要显示酒店的国家和城市。我从ngrx/data EntityService 获取国家、城市和酒店数据。
如果我使用嵌套订阅,它可以正常工作,但我确信有更好的方法来做到这一点。
这是我当前的实现
this.countryService.entities$.pipe(map((countries: Country[]) => countries)).subscribe((countries) => {
this.countries = countries;
this.cityService.entities$.pipe(map((cities) => cities)).subscribe((cities) => {
this.cities = cities;
this.hotelService.entities$.pipe(map((hotels) => hotels)).subscribe((hotels) => {
this.hotels = hotels.map((hotel) => {
return {
...hotel,
country: this.countries.find((c) => c.id === hotel.countryId),
city: this.cities.find((c) => c.id === hotel.cityId),
};
});
});
});
});
任何人都可以为上述解决方案提出更好的替代方案吗