尽管我的console.log实际上确实记录了“ XXXXXXXXXXXXXXXXXXXX这是正确的!”,以下代码似乎总是返回false
。到控制台。我制作的嵌套承诺链会影响我要解析的返回值吗?
isAuthenticated(): boolean {
//verify that front end token is valid on back end
console.log('localStorage: ' + localStorage.getItem('user'));
if (localStorage.getItem('user') !== null) {
this.db.auth.currentUser.getIdToken().then(reply => {
this.http
.post('http://localhost:3000/login', { token: reply })
.toPromise()
.then(response => {
if (response['valid'] === 'true') {
console.log('XXXXXXXXXXXXXXXXXXXX THIS IS TRUE! ');
return true; //please just end here and return true... please!
} else return false;
});
});
} else return false;
}
您需要在“ if”之后添加return :)检查我的示例
isAuthenticated(): boolean {
//verify that front end token is valid on back end
console.log('localStorage: ' + localStorage.getItem('user'));
if (localStorage.getItem('user') !== null) {
return this.db.auth.currentUser.getIdToken().then(reply => {
// The difference from the OP's code is the return here
return this.http
.post('http://localhost:3000/login', { token: reply })
.toPromise()
.then(response => {
if (response['valid'] === 'true') {
console.log('XXXXXXXXXXXXXXXXXXXX THIS IS TRUE! ');
return true; //please just end here and return true... please!
} else return false;
});
});
} else return false;
}