さまざまな http エンドポイントからカテゴリ、場所、アイテムを取得する 3 つの Angular2 サービスを作成しました。これらのサービスからデータを取得し、取得したすべてのデータから新しい DataSet を作成する新しいサービスを作成したいのですが、反復不可能な DataSet オブジェクトから Observable を作成できません。
Observables を使用している場合のように、データを単一の構造に統合するより良い方法はありますか?
export class DataSet {
items: Item[];
locations: Location[];
categories: Category[];
}
@Injectable()
export class DataService {
_data : DataSet;
constructor(
private _http: Http,
private _categoryService: CategoryService,
private _locationService: LocationService,
private _itemService: ItemService) { }
getDataSet(): DataSet {
this._data = new DataSet();
this._categoryService.getCategories().subscribe(cats => {
this._data.categories = cats;
});
this._locationService.getLocations().subscribe(locs => {
this._data.locations = locs;
});
this._itemService.getItems(null).subscribe(items => {
this._data.items = items;
});
// ERROR can't create observable from non array type dataset
return Observable.from(this._data);
}
}