私は、コードのこの部分を持っている:Observablesを「同期する」方法は?
ngOnInit(): void
{
this.categories = this.categoryService.getCategories();
var example = this.categories.flatMap((categor) => categor.map((categories) => {
var links = this.categoryService.countCategoryLinks(categories.id)
.subscribe(valeur => console.log(valeur));
return categories.id
}));
}
結果は、2つの観測です。 1つはカテゴリのリストで構成されています。 2番目は、特定のcategories.idの項目数です。
私の質問は以下の通りです:
どのように私は、特定のデータ構造に構造化すべての情報を得ることができますか? 私は、同じデータ構造内のカテゴリごとにカテゴリとアイテムの数を保存して、それらをTSコンポーネントで表示できるようにしたいと考えています。
私は私の問題を修正しようとして段階的に行って、私はほとんど解決され、次のコードを持って行きました:
this.categories = this.categoryService.getCategories();
var example = this.categories.mergeMap((categor) => categor.map((myCateg) =>
{
this.categoryService.countCategoryLinks(myCateg.id)
.map(numlinks => Object.assign(myCateg,{numLinks: numlinks}))
.subscribe(valeur => console.log(valeur));
return myCateg.id
}));
それは次のように出力できます:
をnumLinksはまだオブジェクトです...(私のカウント値を含んでいます)categoryNameやidのようなjsonプロパティに変換する方法はありますか?事前およびよろしくで
おかげで、ここで
が問題に 解決です:ngOnInit(): void
{
this.categories = this.categoryService.getCategories();
const example = this.categories
.mergeMap((categor) => categor
.map((myCateg) => {
this.categoryService.countCategoryLinks(myCateg.id)
.map(numlinks => {
myCateg.numlinks = numlinks.count;
return myCateg;
})
//Object.assign(myCateg,{numLinks: numlinks}))
.subscribe(value => console.log(value));
return myCateg
}));
example.subscribe(val => console.log("value2: "+val));
}
この投稿は、この技術に関する知識が不足していることが主な原因です。しかし、なぜ配列を "平坦化"する必要がありますか? Observablesで作業しているためにオブジェクトを作成する理由と、2つのソースを1つにマージすることが考えられる(これは単なる意見です)。ソースのうち、Observablesは更新可能ではないことを理解しました。 –
私はより詳細な説明で私の答えを更新しました。あなたはエッグヘッドを試してみるべきです。RxJSに関するioチュートリアルは、本当に役に立ちます。 – AngularChef
ありがとう@AngularFrance。私は確かに自分自身をさらに見る必要があります。 –