【发布时间】:2017-06-26 04:32:41
【问题描述】:
我有一个 Angular 2 路由器保护器,其 canActivate 方法定义如下:
canActivate() {
return this.sessionSigninService.isAuthenticated()
.filter(isAuthenticated => isAuthenticated !== null)
.map(isAuthenticated => {
if (isAuthenticated) {
return true;
}
this.router.navigate(['/signin']);
return false;
});
}
来自sessionSigninService:
isAuthenticated(): Observable<boolean> {
return this.store.select(fromRoot.getAuthenticated);
}
仅供参考,fromRoot.getAuthenticated 被初始化为 null
当调用canActivate 方法并且isAuthenticated 的null 值进入filter() 运算符时,似乎filter() 会阻塞,直到isAuthenticated 的值更改为false 或@ 987654334@.
请注意,这是期望的行为,但我不明白...
有人可以解释一下这种行为吗?
【问题讨论】: