У меня есть canActivate (guard), где я проверяю загруженную переменную, чтобы увидеть, загружена очередь или нет.
Однако теперь мне нужно проверить несколько переменных, загруженных в очередь (логическое значение), чтобы увидеть, все ли они загружены или нет. Мне нужно будет отправлять действия тогда.
canActivate(): Observable<boolean> {
return this.checkStore().pipe(
switchMap(() => of(true)),
catchError(() => of(false))
);
}
checkStore(): Observable<boolean> {
// Below are the additional booleans I need to check on
// this.store.select(fromStore.isFirstQueueLoaded);
// this.store.select(fromStore.isSecondQueueLoaded);
// this.store.select(fromStore.isThirdQueueLoaded);
// this.store.select(fromStore.isFourthQueueLoaded);
// this.store.select(fromStore.isFifthQueueLoaded);
// this.store.select(fromStore.isSixthQueueLoaded);
// this.store.select(fromStore.isSeventhQueueLoaded);
return this.store.select(fromStore.isFirstQueueLoaded)
// want to check for remaining queues loaded boolean val here
.pipe(
tap(loaded => {
// need to check for loaded values of all queues
if (!loaded) {
this.dispatchActiontoStoreForAllQueue();
}
}),
filter(loaded => loaded)
);
}
dispatchActiontoStoreForAllQueue(): void {
this.store.dispatch(new fromStore.LoadFirstQueue({}));
this.store.dispatch(new fromStore.LoadSecondQueue({}));
this.store.dispatch(new fromStore.LoadthirdQueue({}));
this.store.dispatch(new fromStore.LoadFourthQueue({}));
this.store.dispatch(new fromStore.LoadFifthQueue({}));
this.store.dispatch(new fromStore.LoadSixthQueue({}));
this.store.dispatch(new fromStore.LoadSeventhQueue({}));
}
Как нам объединить все эти выборки NGRX (оптимизированный подход), чтобы проверить их логические значения и активировать охрану?