在我的JavaScript学习之旅中,我遇到了一个复杂的问题,我花了24个多小时研究并尝试了几个已发布的解决方案,但遗憾的是,我没有成功解决我的问题。这促使我写下这个回复来为我解决这个复杂的问题!
class db{
async findOne(search){
try {
const doc = this.collection.doc(search).get();
return get.data()
} catch (error) {
console.error(Error(red(error)).message);
process.exit(1)
}
}
}
输出Promise { <pending> }
我真正想要的是在不使用then
的情况下完成输出,并像以下输出:
{
name:'Johan',
age:'15',
}
这是this.collection.doc(search).get();
同步吗?我猜不是。
so,const doc = await this.collection.doc(search).get();
这将解决你的问题。
您必须在指定行上使用await,直到它完成给你!!
const doc = await this.collection.doc(search).get();
如果您正在获得承诺数组,您可以使用promise.All([Array of promises]);
来解决它们
Promise.all([promise1, promise2, promise3]).then((values) => {
console.log(values);
});
更多信息,请访问MMDN