Наблюдаемый не подписывающийся при использовании трубы в Rxjs - Angular - PullRequest
0 голосов
/ 23 мая 2019

Следующий код не подписывается:

this.store
      .select(petSelectors.selectPetData)
      .pipe(find(x => x.petName === petName)).subscribe(x => console.log(x));

Но если я делаю это, он делает подписку:

this.store.select(petSelectors.selectPetData).subscribe(x => console.log(x));

ОБНОВЛЕНИЕ: это тоже работает

const x = this.store .select(petSelectors.selectPetData).pipe(find(x => x));

, но когда я добавляю логику, это не

Я следую официальной документации RxJS: https://rxjs -dev.firebaseapp.com / api / operator / find

Я даже пробовал внутри pipe(), try with take(1), map(), etc, и когда я делаю .subcribe(), ничего не печатается.Я также пытался использовать async трубу.

Объект:

{
  "petName": "devpato"
}

Имя питомца, которого я передаю, - это сравнение объектас 'devpato'

1 Ответ

0 голосов
/ 24 мая 2019

Нашел мою проблему! @ConnorsFan в основном x => x.petName === petName не работает, потому что x - это весь массив , а не единственный объект внутри массива. Так что мне нужно вмешиваться через x

.pipe(map(x => x.find(u => u.petName ===petName));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...