我正在检查Firebase中是否存在对象。我正在使用打字稿和#34; angularfire2":" ^ 2.0.0-beta.8"包。在检查对象是否存在时,我使用下面的方法,但我返回undefined
。
let isExists = this.myservice.isExists(order.$key);
console.log(isExists)
返回undefined
isExists(orderKey:string) {
let urlOrRef = `/orders/${orderKey}`;
const orderRef = this.af.database.object(urlOrRef, { preserveSnapshot: true });
orderRef.subscribe(data => {
if(data.val()==null) {
return false;
} else {
return true;
}
});
}
所以我稍微调整一下方法,将变量显式设置为布尔值并返回该变量。
isExists(orderKey:string) {
let exists = false;
let urlOrRef = `/orders/${orderKey}`;
const orderRef = this.af.database.object(urlOrRef, { preserveSnapshot: true });
orderRef.subscribe(data => {
if(data.val()==null) {
exists = false;
} else {
exists = true;
}
});
return exists;
}
返回我期待的true
或false
。
我需要理解为什么第一个方法会返回undefined
。感谢您的帮助!