我是redux的新手。因此,我在我的角度应用程序中使用了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)))
);
})
);