내 상황에서는 CanActivate()
모든 경로에 대한 사용자 액세스를 제한하는 인증 가드로 작업하고 있지만 조건 값은 http 요청 Promise 객체에서 가져옵니다. Promise then () 및 catch ()에 액세스하여 CanActivate(): Boolean
함수로 반환하려면 어떻게해야합니까?
내 코드는 다음과 같습니다.
// On AuthService
verfifyUser(): Promise<any> {
return this.http
.get(`api/auth/verify-user`, { headers: this.headers })
.toPromise()
.then(res => res.json() as any);
}
// On AuthGuardService
CanActivate(): Boolean {
this.authSrv.verfifyUser(some_user).then(result => {
// return true
}).catch(err => {
// return false
});
}
이 문제를 해결하는 방법을 여전히 알 수 없습니다.
CanActivate 인터페이스 canActivate
메서드의 반환 유형은 입니다 .Observable<boolean>|Promise<boolean>|boolean
canActivate(): Promise<boolean>
버전 을 사용 하고 Promise를 반환 할 수 있습니다 . 함수에서 다음과 같이 작성할 수 있습니다.
canActivate() : Promise<boolean> {
return new Promise( resolve => {
this.authSrv.verfifyUser(some_user).then(result => {
resolve(true);
}).catch(err => {
resolve(false);
});
});
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다