Angular2, как получить данные массива из .toPromise () - PullRequest
0 голосов
/ 06 сентября 2018

Это функция 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 голосов
/ 06 сентября 2018

Попробуйте изменить

<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
});
0 голосов
/ 06 сентября 2018

Если вы используете обещание, вы можете использовать функцию обратного вызова .then () для получения значения и .catch () для обработки ошибки.

Если вам нужен стиль реактивного программирования, вы можете использовать наблюдаемые. Используя .map () , .subscribe () , вы можете получить значение в верхней части наблюдаемых

В вашем коде добавьте функцию обратного вызова в верхней части обещания

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

Надеюсь, это поможет

...