1
我是新角度等,我一直在玩弄决心。然而,当我想传递一个本地布尔值时,我得到了未定义?我试图理解为什么。这下面是我的警惕,我的服务只是调用一个API,它正在通过。我想将一个布尔值传递给该解析附加到的组件,以便显示错误或不显示错误。Angular 2 Resolve - 局部变量范围
resolve(): boolean {
let passed: boolean;
let uid: string = window['appdata'].uid;
let tbt: string = window['appdata'].tbt
let lang: string = window['appdata'].apiUserLanguage;
if(uid != null || undefined && tbt != null && undefined){
console.log('Uid is: ' + uid + ' tbt is: ' + tbt);
this.validateEmailService.emailCheck(uid, tbt, lang).subscribe(
data => {
passed = true;
},
err => {
passed = false;
}
);
}
console.log('Passed is: ' + passed);
return passed;
}
}
东西从你的病情指出:undefined是falsy。 所以在你的情况:uid!= null || undefined && tbt!= null && undefined 这部分永远不会被评估:(undefined && tbt!= null && undefined)。 这应该是你的问题的一部分。 – Juan
您正在设置异步传递的值,但是您正在同步记录该值。换句话说,'console.log('Passed is:'+ passed);'发生在this.validateEmailService.emailCheck'完成之前。 – Baruch
谢谢巴鲁克,对于我的特殊使用情况,我想知道如果使用promise而不是observable,然后使用.then() –