问题描述
点这里看文档Angular2文档 文件详情在教程最后面
app/hero.service.tsexport class HeroService { getHeroes(): Promise<Hero[]> { return Promise.resolve(HEROES); }}
如上述代码,getHeroes()返回一个承诺,resolve之前是HEROES
app/app.component.ts getHeroes(): void { this.heroService.getHeroes().then(heroes => this.heroes = heroes); }
据我了解,=>是匿名函数 那么heroes => this.heroes = heroes就大致等价于
function(heroes) { return this.heroes = heroes}
也就是说服务的getHeroes()返回的结果应该是是heroes。那么问题来了, 明明是 return Promise.resolve(HEROES)为什么在使用的时候又是heroes?
问题解答
回答1:app/hero.service.ts
export class HeroService { getHeroes(): Promise<Hero[]> {
return Promise.resolve(HEROES);
}} 这个是es6语法还是typescript语法?
回答2:可不可以这样理解:服务return Promise.resolve(HEROES),返回的数据作为函数的参数传给this.heroes
function(heroes) { return this.heroes = heroes}