Ответ от подписки существует, но не может получить доступ к значению в ответе (не определено) в Angular - PullRequest
0 голосов
/ 08 апреля 2020

Мне жаль, что название может показаться запутанным.

Я написал API с узлом express. js, и я вызываю эти API из service.ts и подписываю их в component.ts. Я мог проверить, что ответы были правильными и могли копировать его в переменные, а также могли сохранять их в console.log. Тем не менее, после того, как ответы были скопированы в переменные, я не могу проверить каждое из значений в переменной (показано как неопределенное), но могу записать целую переменную console.log (в состоянии увидеть все значения).

это интерфейс сохранить ответ от запроса на получение

export interface LOLUserData {
  profileIconId: number;
  name: string;
  puuid: string
  summonerLevel: number;
  revisionDate: number;
  id: string;
  accountId: number;
  profileimg: string;
}

Это API от узла express сервер

app.route("/api/profile/").get((req, res) => {
    fetch("https://na1.api.riotgames.com/lol/summoner/v4/summoners/by-name/" + req.query.name + "?api_key=RGAPI-e98dc13b")
        .then(res => res.json())
        .then(data => {
            res.send({ data });
        })
        .catch(err => {
            res.send(err);
        });
});

Это service.ts

getdata(name: string): Observable<LOLUserData> {
    return this.http
      .get<LOLUserData>('http://localhost:8000/api/profile/', {
        params: {
          name: name
        }
      }).pipe(map(res => res))

Это подписаться

getHeroes = (name: string) => {
    this.summonerService.getdata(name).subscribe(hero => {
      this.heroes = hero;
      console.log(this.heroes); //I can see values after it copies a response
      this.heroes.profileimg = this.url + this.heroes.profileIconId + ".png";
                                        //this.heroes.profileIconId is undefined
      this.submitted = true;
    }),
      error => this.setErrValue(this.heroes)
  }
}

Я могу проверить ответ от узла express server, service.ts и component.ts, поэтому я не думаю, что с ответом что-то не так, но я не знаю, почему одно значение из ответа отображается неопределенным.

...