Я пытаюсь вернуть истину, если подписчик вернет мне данные.Затем, если ошибка, я хочу, чтобы она вернула мне ложь.
Более подробно, моя подписка возвращает меня, если есть куки или нет.Если у меня есть cookie, я хочу вернуть мне True и подписаться на другую функцию, а если в подписке происходит ошибка False.
В случае наличия cookie он должен подписаться на другую функцию, которая возвращает значение.Так что у меня есть подписка внутри другого, и если они оба возвращают мне значение, которое я хочу, оно должно быть ИСТИНА.
Позвольте мне показать вам мой код:
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
this.secureService.config({
controlType: (this.env.useCookiesFromSTS
? SecurityConstant.COOKIE_CONTROL_TYPE
: SecurityConstant.TOKEN_CONTROL_TYPE
),
advanceTime: this.env.securityConfig_advanceTime,
isDebug: false,
isSecure: this.env.securityConfig_isSecure,
whiteList: ['directline.botframework.com']
}, {
urlService: this.env.endpoints_urlSCC,
urlAttrUser: this.env.endpoints_urlUDS
}, this.env.appName)
.subscribe(
(cookie) => {
if(cookie){
this.secureService.getAttrUser(['ComTipoEmpleado'], [''])
.subscribe(
//Return true for the guard
(responseAttrUser) => console.log(responseAttrUser),
(error) => { console.error(error);
}
});
},
(err) => {
return false;
console.error(err);
});
}
В основном янеобходимо проверить, есть ли в моем браузере cookie, и сотрудник авторизован, если нет, то вернуть false.
Это не работает:
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):
boolean {
this.secureService.config({
controlType: (this.env.useCookiesFromSTS
? SecurityConstant.COOKIE_CONTROL_TYPE
: SecurityConstant.TOKEN_CONTROL_TYPE
),
advanceTime: this.env.securityConfig_advanceTime,
isDebug: false,
isSecure: this.env.securityConfig_isSecure,
whiteList: ['directline.botframework.com']
}, {
urlService: this.env.endpoints_urlSCC,
urlAttrUser: this.env.endpoints_urlUDS
}, this.env.appName)
**.map(
(cookie) => {
if (cookie){
return true;
} else {
return false;
}
});**
/*this.secureService.getAttrUser(['ComTipoEmpleado'], [''])
.subscribe(
(responseAttrUser) => console.log(responseAttrUser),
(error) => { console.error(error);
});*/
}