使用body.json()解析来自http.get()的响应时出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用body.json()解析来自http.get()的响应时出错相关的知识,希望对你有一定的参考价值。

尝试使用body.json()将数据分配给对象数组,但由于它返回了承诺,因此对此进行了尝试。但是浏览器抛出错误,告诉我json()不是函数。

getRecipes() {
  this.http.get('https://recipe-book-1be52.firebaseio.com/recipes.json').subscribe(
    (response: Response) => {
      response.json().then(
        (data) => {
          this.recServ.setRecipes(data)
        }
      );
    }
  )
}
答案

您实际上可以像这样替换它,而且,可以将响应分配给接口以对其进行严格类型化。

getRecipes() {
  this.http.get('https://recipe-book-1be52.firebaseio.com/recipes.json').subscribe(
    (response) => this.recServ.setRecipes(response)
  );
}
另一答案

Angular httpClient已经为您执行了.json()

另一答案

下面的代码段可能会帮助您:

getRecipes() {
  this.http.get('https://recipe-book-1be52.firebaseio.com/recipes.json').subscribe(
    (response: Response) => {
      this.recServ.setRecipes(JSON.parse(JSON.stringify(response)));
    }
  )
}

以上是关于使用body.json()解析来自http.get()的响应时出错的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Body.json() 返回一个 Promise? [复制]

使用来自 API 的 $http.get 进行 Angular.js 本地开发

无法使用来自 http get (Angular 4) 的数据填充 Chartist

vue基本知识回顾 | this.$http.get 和 this.$http.post传参 / created与mounted区别 / 富文本解析

vue基本知识回顾 | this.$http.get 和 this.$http.post传参 / created与mounted区别 / 富文本解析

vue基本知识回顾 | this.$http.get 和 this.$http.post传参 / created与mounted区别 / 富文本解析