首页 > 解决方案 > Angular rxjs 地图管道给出了“this”上下文问题

问题描述

我刚刚升级了一个 CLI 项目以使用 Angular 6+ 一切正常,并且该站点将数据显示为例外......所以除了 1 个小问题之外没有任何问题......

“Observable”类型的“this”上下文不可分配给“Observable<[Category, ProductList]>”类型的方法“this”。

getStartpageCategoryWithProducts(startpagePosition, pageSize ?, page ?): Promise < [Category, ProductList] > {
  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<[Category, ProductList]>();
}

标签: angularrxjs

解决方案


我认为问题是 .get.map 没有给你一个 Observable<[Category, ProductList]> 而只是一个普通的 Observable,如果你只删除 toPromise 中的输入就可以了

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();
}

推荐阅读