【发布时间】:2018-10-19 20:50:59
【问题描述】:
我写下面的代码作为我的主页守卫,使用checkTokenValidation() 来验证来自用户的身份验证令牌,但我的 IDE 显示此错误:声明类型既不是“void”也不是“any”的函数必须返回一个值。
我返回我的订阅布尔值,但我不知道为什么我有这个问题。我测试了我的代码并了解我的代码不会将我的返回行执行为真或假,这很奇怪。
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
this.authService.checkTokenValidation().subscribe((data) => {
console.log(data);
if (data['ok']) {
this.router.navigate(['/overview']);
return false;
} else {
return true;
}
});
}
【问题讨论】:
-
您在订阅中返回,但不在
canActivate中。这是一个常见的菜鸟错误。
标签: angular