映射和过滤可观察流RXJS

时间:2018-10-24 16:11:24

标签: rxjs observable flatmap

我有一个从firebase集合中观察到的东西,其中包含对象作为流。

我想过滤这些对象,然后将它们映射以添加2个其他属性,但是我无法使其正常工作。

 this.firestoreService.colWithIds$('stuff',
  ref => ref.orderBy('createdAt', 'desc')
    .limit(20))
  .pipe(
    map((outputArray: any[]) => {
      return skills.map(s => {
        if (s.user.uid !== this.user.uid && !this.bloomFilterService.test(s.uid)) {
          return { ...s, loaded: false, fadeOutState: 'out' };
        }
      });
    })
  )

这几乎在那里,但是对于我要过滤掉的那些对象,它仍然返回undefined。

我尝试过滤可观察对象,但是随后我可以进行映射-至于FlatMap,我无法理解文档以及如何实现我要使用的功能

1 个答案:

答案 0 :(得分:0)

那是因为您不进行过滤,只是返回undefined。您可能应该这样做:

return skills .filter(u.user.uid !== this.user.uid && !this.bloomFilterService.test(s.uid)) .map(s => ({ ...s, loaded: false, fadeOutState: 'out' });