【发布时间】:2019-12-24 22:54:43
【问题描述】:
我正在使用来自 @angular/common/http 的 HttpClient 和 HttpResponse(认为在包中不可用)从 Fiberbase 以 agular 获取响应,但是在映射响应时存在一些类型转换问题,因为我认为响应生成 Observable 为返回类型。任何人都可以建议我哪里出错了。
我在分配 const 配方时遇到错误(“类型 'Promise' 缺少类型 'Recipe[]' 中的以下属性:长度、pop、push、concat 和另外 26 个”)
import { HttpClient,HttpResponse } from '@angular/common/http';
getRecipes(){
this.http.get('https://ng-recipe-book-cb551.firebaseio.com/recipes.json')
.map(
(response: Response) => {
const recipes: Recipe[] = response.json();
for(let recipe of recipes){
if(!recipe['ingredients']){
recipe['ingredients'] = [];
}
}
return recipes;
}
)
.subscribe(
(recipes: Recipe[]) => {
this.recipeService.setRecipes(recipes);
}
);
}
我应该从 response.json 中获取食谱数组
【问题讨论】:
-
Angular 是什么版本的? (在 ng5+ 中你需要使用管道并在管道中添加地图)
-
@reza 我正在使用 Angular cli v 8.1.2
-
如果你使用的是ng8,你根本不需要做response.json
标签: angular