首页 > 解决方案 > Model.populate() 是否返回一个承诺?

问题描述

我正在关注 Node.js 和 Mongoose 的指南。为电子商务商店开发一些代码。我有两个代码片段,都在模型上使用 populate() 但是一个代码片段需要 execPopulate() 来返回一个承诺,而另一个不需要。我曾尝试删除 execPopulate 并将其添加到另一种方法中,但两者都出现错误。

在此处输入图像描述

在此处输入图像描述

欢迎和赞赏任何解释。谢谢!

标签: node.jsmongodbmongoosepromisees6-promise

解决方案


Populate()返回«Query» this看到这里和根据猫鼬文档再次Query不是一个承诺。

Mongoose 查询不是承诺。为了方便起见,它们有一个用于 co 和 async/await 的 .then() 函数。但是,与 promise 不同,调用查询的 .then() 可以多次执行查询。

因此,如果您想使用 populate 作为承诺,请使用execPopulate()


推荐阅读