投稿を送信するたびに配列が指数関数的に増加するという問題があります。投稿を最後に更新したときのタイムスタンプを更新するために、各投稿の後にユーザーオブジェクトが更新されているため、2番目のオブザーバブルで発生していると思います。
重複が配列に挿入されるのを防ぐために、その投稿が既に配列にある場合は、内側のオブザーバブルをチェックしようとしています。何らかの理由でこれが機能していません。
loadPosts(url: string) {
switch (url) {
case '/timeline/top':
this.postsService.subscribeAllPosts(this.selectedArea)
.subscribe(posts => {
let container = new Array<PostContainer>();
for (let post of posts) {
this.getEquippedItemsForUsername(post.username).subscribe(x => {
try {
if (container.indexOf(new PostContainer(post, x[0].equippedItems)) === -1) {
container.push(new PostContainer(post, x[0].equippedItems));
}
console.log( container); // grows exponentially after each submitted post
} catch (ex) { }
}
);
}
this.postContainers = container; // postContainers is the array that is being looped over in the html.
});
break;
}
}