我认为问题是.get.map没有给你一个可观察的<[类别,产品列表]>但是只是一个简单的可观察的,如果你只删除在topromis中键入的内容,你就可以了。
getStartpageCategoryWithProducts(startpagePosition, pageSize ?, page ?): Promise {
let params = new HttpParams();
if(pageSize) { params = params.append('pageSize', pageSize); }
if(page) { params = params.append('page', page); }
const options = {
params
};
const url = 'catalog/categories/startpagePosition/' + startpagePosition;
return this.http.get(url, options).pipe(
map(res => [res['category'], this.extractData(res['searchResult'])]),
catchError((err) => this.handleError(err))
).toPromise();
}