我一直在修改英雄教程并遇到一些我不理解的事情,所以希望有人可以提供帮助。
在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中。
为什么英雄未定义?
答案 0 :(得分:0)
因为控制台是同步的并且get是异步的,所以数组是未定义的