Лучшая практика Angular распознаватель с двумя вызовами API ngrx - PullRequest
0 голосов
/ 26 марта 2020

Я новичок в мире 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();
    }
  })
);

}

...