Мне нужно позвонить 2 службам, а вторая должна вызываться с данными, полученными первой.Первый сервис возвращает массив объектов, который содержит идентификатор категории, и для каждого идентификатора мне нужно использовать второй сервис, чтобы получить элементы, связанные с указанным идентификатором.Проблема в том, что при использовании сервиса "items" подписка, похоже, не работает.
Я уже пытался вложить второй вызов в первый, чтобы объединить Observable, но безрезультатно.
categoriesArray: Category[];
categoryItemsArray: [CategoryItem[]];
this.firstService
.query({ 'sectionId.equals': this.section.id })
.pipe(
filter((res: HttpResponse<Category[]>) => res.ok),
map((res: HttpResponse<Category[]>) => res.body))
.subscribe(
categories => {
this.categoriesArray = categories;
},
error => console.error(error),
() => {
this.categoriesArray.forEach(( category, index) => {
console.log('entered ForEach loop');
this.secondService.query({ 'categoryId.equals': category.id })
.pipe(
filter((res: HttpResponse<CategoryItem[]>) => res.ok),
map((res: HttpResponse<CategoryItem[]>) => res.body))
.subscribe( (categoryItems, index) => {
console.log('second subscribe');
this.categoryItemsArray[index] = categoryItems;
});
});
});
Вторая подписка не достигнута.