Angular rxjs map pipe给出了这个'背景问题

时间:2018-05-23 18:25:33

标签: angular rxjs

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

  

' this'类型' Observable'的上下文不能转让给   方法'这个'类型' Observable< [Category,ProductList]>'。

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 个答案:

答案 0 :(得分:0)

我认为问题是.get.map没有给你一个Observable&lt; [Category,ProductList]&gt;但只是一个普通的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();
}