我正在尝试一次执行两个动作。一种用于用户用户身份验证(类似于isAuthenticated = true),另一种用于设置用户(将来用户数据可能会从rest响应中返回),因此我有两个单独的存储,一个用于用户,一个用于auth。一切都很好,因为操作正在分派问题,因为它们一次又一次地被分派,这是正常行为,但过一阵子由于SET_USER操作应用程序崩溃。有什么方法可以只获取用户凭证的价值一次,并保留常规行为以检查身份验证?这是代码段:
@Effect()
authSignin = this.actions$
.pipe(
ofType(AuthActions.TRY_SIGNIN),
map((action: AuthActions.TrySignin) => {
console.log('AuthEffects -> authSignin');
return action.payload;
}),
switchMap((data: any) => {
this.router.navigate(['/student']);
const user: User = {
id: '1',
firstName: 'John',
lastName: 'Doe',
pesel: '19827364',
dateOfBirth: new Date(),
address: 'Canada, where clone syrup is made',
phoneNumber: '14 2345 345'
}
return [
{ type: AuthActions.TRY_SIGNIN },
{ type: UserActions.SET_USER, payload: user }
]
})
)
所以问题再次出现: 有什么方法可以只获取用户凭据一次的价值,而不会保留常规行为来检查身份验证?
任何提示都会非常有帮助。谢谢。
答案 0 :(得分:0)
我认为在您的情况下,它将永远处于效果循环中,最终将导致浏览器崩溃。您是否有任何理由在正在监听AuthActions.TRY_SIGNIN
的效果内分配AuthActions.TRY_SIGNIN
?