2017-04-19 242 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 
    }, {}) 
))