响应的json方法的返回类型是什么?

时间:2017-03-24 03:35:30

标签: javascript json angular

我看到了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的价值回报,我应该使用哪些?

1 个答案:

答案 0 :(得分:1)

您看到response.json()返回Promise的示例是Fetch API的一部分,它仍处于试验阶段:https://developer.mozilla.org/en-US/docs/Web/API/Response

  

Body.json()

     

获取响应流并将其读取完成。它   返回使用JSON对象解析的promise。

您看到的另一个示例来自Angular的实现,该实现直接返回数据而不是Promisehttps://github.com/angular/angular/blob/master/packages/http/src/body.ts#L26