NodeJS 如何删除promise并使其成为普通数组

9q78igpj  于 2022-11-29  发布在  Node.js
关注(0)|答案(3)|浏览(160)

在我的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',
}
2hh7jdfx

2hh7jdfx1#

这个this.collection.doc(search).get();是同步的吗,我猜不是。
所以const doc = await this.collection.doc(search).get();
这将解决你问题。

aelbi1ox

aelbi1ox2#

你必须使用等待它等待在specifix行,直到它完成在这里,你去!!

const doc = await this.collection.doc(search).get();
polhcujo

polhcujo3#

如果你得到的是承诺数组,你可以使用promise.All([Array of promises]);来解析它们

Promise.all([promise1, promise2, promise3]).then((values) => {
console.log(values);
});

有关详细信息,请访问MMDN

相关问题