Здесь вы захотите использовать оператор map
, чтобы отобразить ваши сообщения перед подпиской:
this.serverService.getPosts().pipe(
map(posts => posts.filter(post => this.favoriteIds.includes(post.id)))
).subscribe(data => this.posts = data)
Еще одна вещь, которую вы захотите сделать, это избавиться от метода getPosts () и просто использовать локальное присваиваемое присваивание с оператором shareReplay (1):
getPosts$ = this.http.get<Post[]>(this.postsUrl).pipe(
shareReplay(1)
)
Это предотвратит новый вызов на сервер каждый раз, когда вы пытаетесь получить избранное.