将承诺信息转换为可观察
问题描述:
我遵循英雄之旅指南,但已决定观察结果比承诺更好,但我在实施它们时遇到问题。将承诺信息转换为可观察
这里是我的食谱服务:
import { of } from 'rxjs/Observable/of';
...
getRecipes(): Observable<Recipe[]> {
return of(RECIPES);
}
getRecipe(id: number): Observable<Recipe> {
return this.getRecipes()
.subscribe(recipes => recipes.find(recipe => recipe.ID === id));
}
我不知道如何从obvserable阵列获取特定的可观察的项目就像我与教程的承诺一样。
答
你应该使用地图这种情况下,您的实现可以是以下
getRecipe(id: number): Observable<Recipe> {
return this.getRecipes()
.map(recipies => recipies.find(x => x.id === id));
}
什么是“x”和什么才是我真正使用有 – Cacoon
我不好应该是X => x.id ===编号,有错误现在正确答案 –
谢谢,所以当我们调用'x'我们从它的父母调用它,所以它可以命名任何东西?我也该如何使用这个可观察的,我试图做'ngOnInit():void {this.route.paramMap .switchMap((params:ParamMap)=> this.recipeService.getRecipe(+ params.get(' id'))) .subscribe(recipe => this.recipe = recipe); }'但它并没有加载项目 – Cacoon