将Promise信息转换为可观察信息

时间:2017-10-10 04:12:47

标签: angular

我遵循了英雄之旅指南,但已经决定Observables比承诺更好但是我在实施它们时遇到了麻烦。

这是我的食谱服务:

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));
  }

我不确定如何从一个可观察的数组中获取一个特定的可观察项,就像我在本教程中使用promises一样。

1 个答案:

答案 0 :(得分:1)

你应该在这种情况下使用map,你的实现可以遵循

 getRecipe(id: number): Observable<Recipe> {
     return this.getRecipes()
          .map(recipies => recipies.find(x => x.id === id));
  }