1

さまざまな 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);
    }
}
4

1 に答える 1