代码之家  ›  专栏  ›  技术社区  ›  Mackelito

Angular RXJS地图管道给出了“this”上下文问题

  •  0
  • Mackelito  · 技术社区  · 7 年前

    我刚把一个cli项目升级为使用angular 6+ 一切正常,网站显示数据除外。所以没有问题,除了一个小问题…

    “observable”类型的“this”上下文不能分配给 方法的'this'类型为'observable<[类别,产品列表]>'。

    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]>();
    }
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Chris Gomez    7 年前

    我认为问题是.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();
    }