Я хочу создать функцию, которая будет возвращать true, если http.get был успешным, в противном случае возвращает false. Я пытался что-то вроде этого:
isOk() {
let isOk;
this.http.get('ip/api/isOk')
.subscribe(x => { isOk = true; },
(err) => { isOk = false; });
return isOk;
}
Но он возвращает undefined
. Я знаю, что это asyn c функция, поэтому она возвращает значение до завершения http.get
. Как я могу создать функцию, которая возвращает true / false после «получения» данных от REST API?
edit: я хочу использовать эту функцию в функции Guard canActivate
. Я не знаю, как я могу построить оператор IF с наблюдаемым.
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
let x = this.someService.isOk();
if(...){//if isOk return true
return true;
}else{
this.router.navigate(['/login']);
}
}