[英]ERROR: Property 'then' does not exist on type 'Hero[]'
app.component.ts文件
import { Component, OnInit } from '@angular/core';
import { Hero } from './hero';
import { HeroService } from './hero.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
providers: [HeroService]
})
export class AppComponent implements OnInit{
title = 'Tour of Heroes';
heroes : Hero[ ];
selectedHero : Hero;
constructor(private heroService: HeroService) { }
getHeroes(): void {
this.heroService.getHeroes().then(heroes => this.heroes = heroes);
};
ngOnInit(): void {
this.getHeroes();
};
onSelect(hero: Hero): void{
this.selectedHero = hero;
};
}
hero.service.ts
import { Injectable } from '@angular/core';
import { Hero } from './hero';
import { HEROES } from './mock-heroes';
@Injectable()
export class HeroService {
getHeroes(): Promise<Hero[]> {
return Promise.resolve(HEROES);
}
}
如何解决此错误?
我得到了同样的错误; 在我搜索了几个答案后,我发现你的代码与我没什么不同,实际上没有错误。 只需要重新启动ng服务然后成功编译。 参考: Angular2教程:服务中的Promise错误(类型不可分配)
this.heroService.getHeroes()
方法返回已解析的promise。
它应该是
this.heroes = this.heroService.getHeroes();
而不是 :
getHeroes(): Promise<Hero[]> {
return Promise.resolve(HEROES);
}
试试这个 :
getHeroes(): Promise<Hero[]> {
return new Promise(resolve => {
resolve(HEROES);
});
}
这是工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.