我看到了Angular 2的一些示例,它们将http
的响应转换为JavaScript对象,如下所示:
http.get("http://....").subscribe(
response => {
let result = response.json();
},
error => {
console.log('cannot get api');
}
);
我还看到一些例子说明json()
方法返回一个Promise,它要求将函数括在then
中以获得结果:
response.json().then(result => ({
///
});
为什么一个使用then
而另一个没有?什么是json
的价值回报,我应该使用哪些?
答案 0 :(得分:1)
您看到response.json()
返回Promise
的示例是Fetch API的一部分,它仍处于试验阶段:https://developer.mozilla.org/en-US/docs/Web/API/Response
Body.json()
获取响应流并将其读取完成。它 返回使用JSON对象解析的promise。
您看到的另一个示例来自Angular的实现,该实现直接返回数据而不是Promise
:https://github.com/angular/angular/blob/master/packages/http/src/body.ts#L26