0
在我的Angular2应用程序中,我使用canActivate来允许访问页面。 其中一部分是与服务器检查令牌没有被篡改,所以在我可以决定天气用户可以被授予访问权限之前,我需要调用我的API。 这意味着订阅Observable并等待答案。等待可观察订阅Angelar2
我需要返回真或假,但由于我做了一个asyns调用,我不能根据我的回应返回。 我意识到我不能等待,因为它是单线程,但我需要以某种方式阻止,直到我有一个答案从API。 我canActivate如下所示:
canActivate() {
this.guardClient.checkToken("token")
.subscribe(response => {
let responseText = response.text().replace(/"/g, '');
if (responseText === 'Ok')
{
return true;
}
if(responseText === 'denied') {
this.router.navigate(['login']); // redirecting to login
return false;
}
});
}
有人能告诉我如何解决这个问题?
谢谢,这样做! :) – methgaard