首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在订阅rxjs6中使用地图

如何在订阅rxjs6中使用地图
EN

Stack Overflow用户
提问于 2018-09-04 18:10:48
回答 1查看 80关注 0票数 0

我有一个服务,它返回一个可观察的,在得到响应后,我映射响应并将结果分配给数组。

代码语言:javascript
复制
  this.dataService.fetchData().subscribe(response =>{
    [...this.DataMappingField ]=  response.map(({ ID: id, Name: name }) => ({ id, name }));
  });

通过订阅内部的扩展操作符,我得到了下面的错误。

错误:'Modelclass'.类型上不存在属性'map‘

服务部门的反应

代码语言:javascript
复制
[
  {ID: 6197, Name: 'A', desc: null,catergory:'lap'},
  {ID: 6198, Name: 'B', desc: null,catergory:'lap'}
]

在服务中,fetchData方法:

代码语言:javascript
复制
fetchData(): Observable<Modelclass> {
  return this.http
    .get<Modelclass>(REQUEST_URL)
    .pipe(
      tap(response => response)
    );
}

模型类:

代码语言:javascript
复制
export class Modelclass {
  ID: any;
  Name: string;
}

但是,下面的代码在使用方法调用时运行良好:

代码语言:javascript
复制
this.dataService.fetchData().subscribe(this.fetchResponse);

private fetchResponse(response): void => {
  [...this.DataMappingField ]= response.map(({ ID: id, Name: name }) => ({ id, name }));
}
EN

回答 1

Stack Overflow用户

发布于 2018-09-07 17:32:08

我认为问题是不正确的响应输入。fetchData方法的定义应该如下:

代码语言:javascript
复制
fetchData(): Observable<Modelclass[]> {
  return this.http
    .get<Modelclass[]>(REQUEST_URL)
    .pipe(
      tap(response => response)
    );
}

注意,我使用Modelclass[]作为响应类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52171868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档