Angular2如何从.toPromise()获取数组数据

时间:2018-09-06 02:24:34

标签: angular angular2-services

这是http函数

test(siteId: string, eqId: string, viewId: number): Promise<IEquipmentImage[]> {
      const getOptions = {
        params: {
          SiteID: siteId,
          EquipmentID: eqId,
          ViewID: viewId.toString()
        }
      };

 return <IEquipmentImage[]>await this.http.get(this.equipmentViewConfig.EquipmentImageUrl, getOptions)
      .toPromise();
    }

它将作为一个承诺返回,但是我在控制台中签入,它返回了这样的内容:

enter image description here

如何仅获取数组值(_zone_symbol_value)?而不是所有这些东西

2 个答案:

答案 0 :(得分:1)

如果使用诺言,则可以使用回调函数 .then()获取值,并使用 .catch()处理错误。

如果您需要反应式编程风格,则可以使用可观察值。通过使用 .map() .subscribe(),您可以在可观察对象的顶部获得该值

在您的代码中,在promise的顶部添加一个回调函数

    <IEquipmentImage[]>await this.http.get(this.equipmentViewConfig.EquipmentImageUrl, getOptions)
          .toPromise().then(function(response){
//here you will get the value in response object
});

希望这会有所帮助

答案 1 :(得分:1)

尝试更改

<IEquipmentImage[]>await this.http.get(this.equipmentViewConfig.EquipmentImageUrl, getOptions)
          .toPromise().then(function(response){
//here you will get the value in response object
});

<IEquipmentImage[]>await this.http.get(this.equipmentViewConfig.EquipmentImageUrl, getOptions).map((res: Response) => res.json())
          .toPromise().then(function(response){
//here you will get the value in response object
});