我真的很喜欢rxjs,而且我希望做一些看起来有些不同寻常的事情(至少我还没有找到任何关于它的东西),但基本上,我正在尝试创建一个类似于for循环用于从我的数据库获取值,其中包括从一组用户(可以是任意数量的用户)获取数据。
目前我的for-loop的结构如下:
picture
但是我不知道如何将这个转化为一个Observable,它会随着时间的推移为每个朋友的帖子以Feed的可用方式发布值。现在这看起来效率很低,但它可能是我现在能做的最好的(希望不是)。
将来,我的想法是我只会显示前10个帖子(按时间顺序,基于他们的时间戳),然后当用户到达页面末尾时,它会显示下一批(但是似乎是另一天的另一个问题)。现在虽然它只是从与用户成为朋友的每个朋友检索每个帖子。
使用更多信息进行修改
for(let friend of user.friends) {
this.postsSub = this.feedService.getPosts(friend.uid).map(friendPosts => {
for(let post of friendPosts){
this.posts.push(post);
}
this.feeds = this.feedService.sortAndReverse(this.posts);
}).takeUntil(this.ngUnsubscribe).subscribe();
}
这样就可以获得与 userId1Feed: {
postId1: { friend1, etc...}
postId2: {friend2, etc...}
postId3: {friend1, etc...}
postId4: {friend1, etc...}
postId5: {friend3, etc...}
postId6: {friend2, etc...}
}