Angular 角响应体

Angular 角响应体,angular,Angular,我很难理解如何从一个角度响应的物体上得到响应体。在他们的文档中有一个例子 http.request('my-friends.txt').subscribe(response=>this.friends=response.text()) 然而,当我尝试执行时,让body:string=response.text()我收到一个错误,提示“Promise类型的参数不能分配给string类型的参数” 我试着把它当作承诺和行动 let body:string; 然后(text=>body=text) 这将

我很难理解如何从一个角度响应的物体上得到响应体。在他们的文档中有一个例子

http.request('my-friends.txt').subscribe(response=>this.friends=response.text())

然而,当我尝试执行
时,让body:string=response.text()我收到一个错误,提示“Promise类型的参数不能分配给string类型的参数”

我试着把它当作承诺和行动

let body:string;
然后(text=>body=text)

这将删除编译错误,但当调用此代码时,它会抛出一个错误,并说“TypeError:response.text(…)。then不是函数”


我想了解承诺到底是什么,以及我需要如何检索它的属性。

我相信您在导入中引用了错误的
响应
对象。如果指定需要从Angular package导入对象的类型:

import { Response } from '@angular/http`;
还有浏览器本机支持的获取API中的对象。它们的不同之处在于
Response
对象为
Response.text()
方法返回
string
,而fetch API
Response
返回承诺。
http
服务使用Angular的
Response
对象,它返回一个字符串,因此这里不需要承诺

如果要将正文文本保存到
body
变量中,则必须在从可观察对象获取值时执行此操作:

http.request('my-friends.txt').subscribe((response: Response) => this.body = response.text());

用完整的代码更新帖子是的,就是这样。我不知道还有另一种反应。谢谢你的澄清。