首页 > 解决方案 > 来自 api 的映射响应返回未定义的数据

问题描述

我正在尝试映射一个数组以从 api 响应中获取特定值。当我得到完整的响应时,数据就被定义了。

EmissionByPolluant(url:string):Observable<emissions[]>{
  return this._http.get(url)
  .pipe(map(res =>res.json()));
}

//method 
this._SaveWrorldService.EmissionByPolluant(this.url).toPromise().then(res=>{
      console.log(res);

但是当我尝试从响应中映射特定值时,我得到了一个未定义项的数组。

  this._SaveWrorldService.EmissionByPolluant(this.url).toPromise().then(res=>{
      console.log(res);
      
      let value=res.map(res =>res.Valoare)
      let name=res.map(res=>res.Denumire)
      let date=res.map(res =>res.An)

      console.log(value);
    })

难道我做错了什么?

无标题.png

标签: angulardictionaryundefined

解决方案


map您尝试读取大写的属性 ( Valoare),但在屏幕截图中,属性名称是小写的 ( valoare)。尝试以下

this._SaveWrorldService.EmissionByPolluant(this.url).toPromise().then(res=>{
      console.log(res);
      
      let value=res.map(res =>res.valoare)  //<- changes are here
      let name=res.map(res=>res.denumire)
      let date=res.map(res =>res.an)

      console.log(value);
    })

推荐阅读