我写下面的代码作为我的主要页面保护,使用 checkTokenValidation()
来从用户有效的身份验证令牌但我的IDE显示此错误:声明类型既不是'void'也不'any'的函数必须返回一个值 . 我在订阅布尔值中返回,但我不知道为什么我有这个问题 . 我测试我的代码并理解我的代码不会将我的返回行执行为true或false,这很奇怪 .
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;
}
});
}
1 回答
通过订阅,您将返回
Subscription
而不是Observable
. 您应映射到所需的值并返回Observable
: