Я новичок в мире ngrx, я только что реализовал распознаватель, который выполняет 4 действия GET, SET info в массиве два раза, и вот как я только что справился с проблемой, вопрос в том, является ли это лучшей практикой для сделать это или мне нужно реализовать другой шаблон, который включает в себя correlationParams Мне просто нужна информация для кикстарта
export class AuthResolverService implements Resolve<{ div: Model.Div[]; emp: Model.Emp[] }> {
constructor(
private readonly store: Store<fromApp.AppState>,
private action$: Actions
) { }
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
return this.store.select('shared').pipe(
take(1),
map(sharedState => {
return sharedState;
}),
switchMap(async sharedState => {
if (sharedState.div.length === 0) {
this.store.dispatch(new SharedActions.GetDiv());
await this.action$.pipe(ofType(SharedActions.SET_DIV), take(1)).toPromise();
} else {
return of(sharedState).toPromise();
}
if (sharedState.empresas.length === 0) {
this.store.dispatch(
new SharedActions.GetEmp({ idDiv: 1 })
);
await this.action$.pipe(ofType(SharedActions.SET_EMP), take(1)).toPromise();
} else {
return of(sharedState).toPromise();
}
})
);
}