【问题标题】:Map and filter an observable stream RXJS映射和过滤一个可观察的流 RXJS
【发布时间】:2019-03-29 03:23:08
【问题描述】:

我有一个来自 firebase 集合的 observable,其中包含作为流的对象。

我想过滤这些对象,然后映射它们以添加 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' };
        }
      });
    })
  )

这几乎就在那里,但是对于我想要过滤掉的那些,它仍然返回未定义。

我已经尝试过滤 observable,但我可以映射 - 至于 FlatMap,我无法理解文档以及如何实现我想要用它做的事情

【问题讨论】:

    标签: rxjs observable flatmap


    【解决方案1】:

    那是因为你没有过滤,你只是返回 undefined。你应该这样做:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      • 1970-01-01
      • 2020-05-26
      • 2021-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多