gpt4 book ai didi

通过具有多个 id 的帖子进行 Angular 循环

转载 作者:可可西里 更新时间:2023-11-01 17:04:31 27 4
gpt4 key购买 nike

我想遍历帖子的 GET 请求并从最喜欢的 id 数组中获取最喜欢的帖子

我试过下面的代码,但我不知道这是不是最好的方法

数据.服务.ts

getPosts(): Observable<Post[]> {
return this.http.get<Post[]>(this.postsUrl);
}

我想通过他们的 ID 从最喜欢的帖子数组中获取所有帖子组件

 getFavorites(): void {
this.serverService.getPosts().subscribe(posts => {
this.favoriteIds.forEach(element => {
let data = posts.filter(post => post.id === element);
this.posts = data;
console.log(this.posts);
});
});
}

最佳答案

您需要在此处使用 map 运算符在订阅之前映射您的帖子:

this.serverService.getPosts().pipe(
map(posts => posts.filter(post => this.favoriteIds.includes(post.id)))
).subscribe(data => this.posts = data)

您需要做的另一件事是摆脱您的 getPosts() 方法,只使用带有 shareReplay(1) 运算符的本地 Observable 赋值:

getPosts$ = this.http.get<Post[]>(this.postsUrl).pipe(
shareReplay(1)
)

这将防止您每次尝试获取收藏夹时都对服务器进行新调用。

关于通过具有多个 id 的帖子进行 Angular 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56309433/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com