res.json()不是HttpClient Angular 2中的函数

时间:2017-08-20 09:22:46

标签: angular angular-http angular-http-interceptors

之前我使用的是Angular Http模块,方法res.json()曾经很好用。 我最近尝试过HttpClient,但res.json()似乎没有用。只有使用res作品,才能告诉我http客户端发生的变化。

return this.client.get('https://swapi.co/api/people/1/')
              .map((res:Response) => {
                 return  res.json(); // using maps to filter data returned form the http call this json dosn't work with http client
              }).map(data => {
                return data; // using maps of maps to filter data returned form the map
        }).flatMap((jedi) => this.http.get(jedi['homeworld'])
          .map(res => {
           return res.json().name; // using flat maps to combine data returned from two observables into one
          }).catch((error:any) => Observable.throw(error.json().error || 'Server error')));

我切换到http客户端,因为新的拦截器可以指针,谢谢

2 个答案:

答案 0 :(得分:8)

是的,这是因为默认情况下新的http客户端隐式调用res.json()而你自己不需要手动调用hostN。这是来自commit的引用:

  

JSON是假定的默认值,不再需要显式解析

有关详细信息,请参阅Difference between HTTP and HTTPClient in angular 4?

答案 1 :(得分:0)

由于HttpClient本身添加了res.json(),这意味着它隐式调用此函数,因此,显式或手动调用它是没有价值的。所以没有必要添加这个功能。希望这有效,而不是......