0
我使用ASP.NET Core和Angular 2(版本〜2.2.0)和Rxjs(版本^ 5.0 0.0-rc.5)。 angular.io文档中的代码示例适用于Angular 2的In Memory Web API,但是当我向httpd.get调用C#控制器时,它会失败。数据正在返回。下面的代码行不起作用:Angular 2 RxJs Promise对http.get调用C#控制器不起作用,而Angular 2在内存Web API中起作用
getHeroes(): Promise<Hero[]> {
return this.http.get(this.heroesUrl)
.toPromise()
.then(response => response.json().data as Hero[])
.catch(this.handleError);
}
我已经改变了代码和这些代码以下行做的工作:
getHeroes(): Hero[] {
this.http.get(this.heroesUrl).map(response => response.json()).subscribe(heroes => {
this.heroes = heroes;
})
return this.heroes;
}
谁能帮助?我真的需要获得第一行代码才能工作,因为第二行代码无法按计划运行,只是表明数据正在返回并显示。
请说明您的具体问题或添加额外的细节,突显正是你需要的。正如目前所写,很难确切地说出你在问什么。请参阅“如何问问”页面以获取有关澄清此问题的帮助。 – olsn
为什么你在一个地方使用'response.json()。data',而在另一个地方只使用'response.json()'?它不应该一样吗? – chrigu
从代码的第二个例子可以清楚的看到,数据是从C#Controller返回的,并且由Angular 2显示。第一个代码示例来自angular.io文档,Promise不起作用。我可能会将Promise更改为Observable以使其起作用。我不清楚为什么Promise不起作用。 – Mark