Mongoose 将带有承诺的子文档填充到实例方法中
我需要将子文档填充到一个实例方法中,并在测试了不同的模式后使其与回调一起工作。但我想知道在这种情况下如何使用承诺,如果我们不能(也许我不应该满足这种需求)是否有理由 populate()方法返回原始文档(包含任何更改) 以下是我想做的:Mongoose 将带有承诺的子文档填充到实例方法中,mongoose,Mongoose,我需要将子文档填充到一个实例方法中,并在测试了不同的模式后使其与回调一起工作。但我想知道在这种情况下如何使用承诺,如果我们不能(也许我不应该满足这种需求)是否有理由 populate()方法返回原始文档(包含任何更改) 以下是我想做的: MyModel.methods.myMethod = function () { return this.populate({ model: 'User', path: 'rank.user'}) .then(function() { //
MyModel.methods.myMethod = function () {
return this.populate({ model: 'User', path: 'rank.user'})
.then(function() { // TypeError: promise.then is not a function
// Expected to be able to do things here...
});
};
这是有效的:
MyModel.methods.myMethod = function () {
return this.populate({ model: 'User', path: 'rank.user'}, function(err, populatedDucument) {
// Works fine...
});
};
你知道如何在这里充满承诺吗?
顺便说一下,我使用的是v4.1.0。在没有回调的情况下调用模型实例调用,以执行填充并返回承诺
MyModel.methods.myMethod=函数(){
返回此.populate({model:'User',path:'rank.User'})
.execPopulate()
.然后(函数(){
// ...
});
};
工作正常!我在文档中没有注意到这个方法,谢谢!