【发布时间】:2019-04-26 10:12:56
【问题描述】:
我对这个承诺真的很陌生,我在试图理解这一点时感到头疼,所以现在我试图从一个返回承诺的方法中得到答案,然后我在条件中捕获值并进行一些其他操作
let addService = async(req, res) => {
checkCategoryExists(param).then(result => {
if(result){
// code here
}
}).catch(err => console.log(err));
}
let checkCategoryExists = async(param) => {
let docs = db.collection(collectionName).doc(param);
docs.get()
.then(categoryDoc => {
if(categoryDoc.exists){
if(categoryDoc.data().param== param){
return true;
}
} else {
return false;
}
})
.catch(err => false);
}
“checkCategoryExists”方法是对 Firestore 数据库的查询。当我试图检查结果变量是真还是假时,它恰好是未定义的。我不是用“.then()”从返回的承诺中获取价值吗?如果有人可以帮助我,请提前感谢
【问题讨论】:
-
我很确定您是否未定义是因为您没有返回查询结果应该是
return docs.get().then..... -
@DLowther 的诊断是正确的。简单的修复是
docs.get()...
标签: javascript node.js promise google-cloud-firestore