У меня есть этот кусок кода:Как «синхронизировать» наблюдаемые?
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
}));
}
Результат являются двумя наблюдаемыми. Один из них состоит из списка категорий. Второе - это количество элементов для определенных категорий category.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 все еще объект ... (содержащий значение моего счета) Любая идея о том, как преобразовать его в свойство json, например categoryName или id?
Заранее спасибо и С уважением,
Здесь вы решение проблемы:
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 источника для «объединения» в один (это только мнение). Разумеется, я понял, что Observables не являются обновляемыми. –
Я уточнил свой ответ с более подробным объяснением. Вы должны попробовать посмотреть яйцо.io tutorials на RxJS, они действительно полезны. – AngularChef
Благодарю вас @AngularFrance. Мне нужно будет убедиться, что я буду уверен. –