angular - rxjs Observable数组

时间:2017-04-19 13:53:24

标签: angular rxjs5

我正在尝试使用包含项目但没有运气的类别数组。 这是代码:

public getItemsAndSubcategoriesFromCatAndCategory(catalogue_key: string, category_key: string): Observable<any> {
        return this.categoriesService.getSubCategories(catalogue_key, category_key)
            .combineAll()
            .switchMap((val) => {
                const obj = {};
                this.getItemsInSubcategory(catalogue_key, val[0].key).map((items) => {
                    obj[val[0].key] = items;
                });
                return obj;
            });
    }

错误是:

  

类型的参数(val:{})=&gt; {}不能分配给参数   type(value:{},index:number)=&gt; ObservableInput&LT; {}&GT;

任何想法?

1 个答案:

答案 0 :(得分:0)

.switchMap需要Observable而不是{}

所以使用

return Observable.of(obj)

而不是

return obj

编辑:

您可以使用更多声明性语法编写:

.switchMap(([firstValue]) => Observable.of(
  this.getItemsInSubcategory(catalogue_key, firstValue.key)
    .reduce((obj, items) => Object.assign({}, obj, {
      [firstValue.key]: items
    }, {})
))