Я хочу обработать действие в действии, основываясь на последнем состоянии и выполнить некоторую логику. Есть несколько примеров, но у меня проблема с получением данных в MergeMap правильно.
@ ngrx / store 8.1.
@Injectable()
export class SitesEffects {
constructor(
private sitesService: SitesService,
private actions$: Actions,
private store: Store<AppState>) {
}
getDataForSites$: Observable<Action> = createEffect(() =>
this.actions$.pipe(
ofType(LoadSites),
map(action => action.siteIds), //siteIds is string[]
withLatestFrom(siteIds => this.store.select(selectSites, new SiteIds(siteIds))), // items return from selector are Site[]
mergeMap(([a,b]) => {
// do some logic based on current state
console.log(a);
console.log(b);
return of(SitesLoaded(new Sites([])));
})
)
);
}
Я ожидаю, что 'a' это siteIds из первой функции карты (массив строк), а b это массив Site (Site [] from withLatestFrom) но b содержит ошибку в коде Visual Studio
Тип «Наблюдаемый» должен иметь метод «Symbol.iterator», который возвращает iterator.ts (2488)
а в консоли (средства разработки) есть ОШИБКА TypeError: undefined не является функцией (для строки mergeMap (([a, b]) =>
Как все эти функции должны быть выровнены для достижения того, что я ожидаюполучить в оператор mergeMap?