Я пытаюсь обработать данные, возвращенные после первого вызова API, используя эффекты NgRx.
fetchPages$ = createEffect(() =>
this._actions$.pipe(
ofType(FETCH_PAGES),
switchMap(() => this._confApi.getPages()
.pipe(
map(pages => {
pages.forEach(page => {
this._confApi.getPageVersion(page.url).pipe(map(version => page.version = version));
});
return pages;
}),
map(pages => SAVE_PAGES({pages}))
)
)
)
);
Но в этом случае вызов API на первой карте даже не вызывается. Я также попробовал этот способ:
fetchPages$ = createEffect(() =>
this._actions$.pipe(
ofType(FETCH_PAGES),
switchMap(() => this._confApi.getPages()
.pipe(
map(pages => {
pages.forEach(page => {
this._confApi.getPageVersion(page.url).subscribe(version => page.version = version);
});
return pages;
}),
map(pages => SAVE_PAGES({pages}))
)
)
)
);
И пока он выполняет вызов, значение не добавляется в свойство страницы (сопоставление с SAVE_PAGES фактически не ожидает).
Что такоеправильный способ решения этой проблемы?