2017-04-19 201 views
0

我想拥有一个包含项目但没有运气的类别数组。 这是代码:角 - rxjs可观察阵列

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:{})=> {}是不能分配给 类型(值的参数:{}, index = number)=> ObservableInput < {}>

任何想法?

+0

可以添加请问你的数据看起来就像'getSubCategories'的结果一样nd'getItemsInSubcategory'? –

回答

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 
    }, {}) 
))