Model.populate()是否返回承诺?

时间:2020-11-10 17:19:53

标签: node.js mongodb mongoose promise es6-promise

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

enter image description here

enter image description here

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

1 个答案:

答案 0 :(得分:0)

Populate()返回«Query» this参见here,根据猫鼬docs的说法,Query并不是一个承诺。

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

因此,如果您要将填充用作承诺,请使用execPopulate()