将可观察数组与Promise数组合并(使用一个公共值)

时间:2018-10-30 22:30:29

标签: angular rxjs ionic3 angularfire

我需要做一个“收藏夹”系统,用户可以在其中添加一些作品作为自己的收藏夹,然后将出现一个页面,其中显示所有标记为收藏夹的作品。

问题是:每个产品都存储在Firebase中(包含密钥),并且有一个收藏夹列表,其中仅包含产品的密钥。我可以在“收藏夹”列表中添加和删除,甚至可以检查作品是否是收藏夹。我的问题是将生产列表(包含键,标题,描述,URL)与收藏夹列表(仅包含键)合并,然后向用户显示此新收藏夹列表。我认为问题出在此功能上:

  favoriteProducts(): Observable<Producao[]> {
   return this.allProducts().pipe(
   switchMap(ap => from(ap)),
      mergeMap(p => {
        return fromPromise(this._favs.isFavorite(p.key)).pipe(
          filter(Boolean),
          mapTo(p)
        );
      }), toArray()
    );
  } 

谢谢!

0 个答案:

没有答案