Я довольно новичок в редуксе.Поэтому я использую ngRx в своем угловом приложении и пытаюсь добавить к нему auth0.И в моем auth.effect.ts я пытаюсь получить данные профиля пользователя и затем отправить их в качестве полезной нагрузки для действия.Я не уверен, как это сделать.Вот как я пытался.Но так как метод получения профиля пользователя асинхронный, он не работает, но я не уверен, как это исправить.
auth.service.ts
userProfile: any;
auth0Profile(authResult,cb):void{
this._Auth0.client.userInfo(authResult.accessToken, (err, profile) => {
if (profile) {
this.userProfile = profile;
}
cb(err, profile);
});
}
auth.effect.ts
@Effect()
loginComplete$ = this.actions$
.ofType<fromAuth.LoginComplete>(fromAuth.AuthActionTypes.LoginComplete)
.pipe(
exhaustMap(() => {
return this.authService.parseHash$().pipe(
map((authResult: any) => {
if (authResult && authResult.accessToken) {
this.authService.auth0Profile(authResult,(err, profile) => {
console.log(profile);
this.userProfile=profile;
return new fromAuth.LoginSuccess(this.userProfile);
});
}else{
return false;
}
}),
catchError(error => of(new fromAuth.LoginFailure(error)))
);
})
);