angular 2 - 在控制台中显示GET的结果

时间:2016-12-13 16:50:45

标签: angular

我一直在修改英雄教程并遇到一些我不理解的事情,所以希望有人可以提供帮助。

在HeroesComponent.ts中是这段代码

export class HeroesComponent implements OnInit {

 heroes: Hero[];
 selectedHero: Hero;

  constructor(private router: Router, private heroService: HeroService) { }

 getHeroes(): void {
    this.heroService.getHeroes().then(heroes => this.heroes = heroes);
  }

  ngOnInit(): void {
    this.getHeroes();
  }

 onSelect(hero: Hero): void {
  this.selectedHero = hero;
 }

这样做 - 英雄名称显示在相应的html中。

但是,在getHeroes()中,如果我添加一个控制台语句

getHeroes(): void {
    this.heroService.getHeroes().then(heroes => this.heroes = heroes);
  console.log("heroes list is " + this.heroes)
  }

然后浏览器控制台显示“英雄列表未定义”,但英雄数组显示在html中。

为什么英雄未定义?

1 个答案:

答案 0 :(得分:0)

因为控制台是同步的并且get是异步的,所以数组是未定义的