Зарегистрируйте эффекты с помощью NGRX - PullRequest
0 голосов
/ 15 апреля 2020

Как зарегистрировать CompanyEffects в AppModule, после получения ответа AppConfigService от сервера.

регистрация эффекта в AppModule

EffectsModule.forRoot([CompanyEffects]),

CompanyEffects

export class CompanyEffects {
    constructor(
        private actions$: Actions,
        private companyService: CompanyService,
        private env: AppConfigService,
    ) {
    }
}

@Effect()
    loadTeams$: Observable<any> = this.actions$.pipe(
        ofType(companyActions.CompanyActionsTypes.ALL_TEAMS_REQUEST),
        mergeMap(() =>
            this.companyService.teamList().pipe(
             ...
            )
        ));

AppConfigService

export class AppConfigService {
    public appConfig: AppConfig;

    constructor(private injector: Injector) { }

    loadAppConfig(): Promise<any> {
        const http = this.injector.get(HttpClient);
        let configUrl = "/api/data/config";

        const promise = http
            .get(configUrl)
            .toPromise()
            .then((data: AppConfig) => {
                this.appConfig = data;
                return data;
            });
        return promise;
    }      
}
...