首页 > 解决方案 > Angular 6,RxJS 返回未定义的对象

问题描述

我的 map/filter 函数没有返回我从内存服务中接收到的对象。

this.myService.getEventMedia().subscribe(
  (response) => {
    return response.map((res) => {
      this.returnObj = res.dataObj.filter((data) => {
       if(data.id === id) {
         console.log('event is ', data)
         return data;
       }

      })
    })
  }
);

在此响应和/或 ngAfterViewInit() returnObj 之后是未定义的控制台日志记录。我来自过滤器功能的数据具有价值,我可以控制台记录 data.id

我的模型如下所示

export interface Model {
  id: number;
  name: string;
  data: Data[];
}

标签: angularrxjsobservablerxjs6

解决方案


也许将您的服务订阅更改为此?

this.myService.getEventMedia().subscribe(
  (response) => {
    this.returnObject = response.map((res) => {
      return res.dataObj.filter((data) => {
       if(data.id === id) {
         console.log('event is ', data)
         return data;
       }
      })
    })
  }
);

这样,您的返回对象就会被设置到地图上。现在返回您的地图对您没有任何帮助。


推荐阅读