Карта и фильтрация наблюдаемого потока RXJS - PullRequest
0 голосов
/ 24 октября 2018

У меня есть наблюдаемое из коллекции 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' };
        }
      });
    })
  )

Это почти там, но он все еще возвращает неопределенное значение для тех, кого я хочу отфильтровать.

Я попытался отфильтровать наблюдаемое, но затем я могу отобразить - и что касается FlatMap, я могу 'понять смысл документации и узнать, как я могу добиться того, что я пытаюсь с ней сделать

1 Ответ

0 голосов
/ 25 октября 2018

Это потому, что вы не фильтруете, вы просто возвращаете undefined.Вы, вероятно, должны сделать:

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

...