【发布时间】:2017-08-16 21:18:49
【问题描述】:
我看到了一些 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 的返回值是多少,我应该使用哪个?
【问题讨论】:
-
你能在这两个例子中使用
console.log(response.json())来找出答案吗? -
示例是否来自相同的代码?会不会是其他示例使用
fetch而不是 Angular2 使用的任何东西? -
您应该使用第一个,即订阅 observable 并将结果作为 json 对象返回。如果您创建一个 Observable 类型的函数并且不将其与 Promise 混合,这将是最佳实践。
-
@Bergi,这与您链接的问题并不完全相同。这个问题与Angular的
Response定义和Fetch API之间的区别有关 -
@Saravana 哦,对了,我以为 Angular 2 会使用
fetch
标签: javascript json angular