我创建了 3 个 Angular2 服务,它们从不同的 http 端点检索类别、位置和项目。我现在想创建一个新服务,从这些服务中检索数据并从所有检索到的数据中创建一个新的 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);
}
}