【发布时间】:2017-10-03 04:31:17
【问题描述】:
我有以下代码,它使用 Mongoose 和 Bluebird 作为 mongoose 的承诺提供者。我想要实现的是在Promise.all() 解析时返回的猫鼬文档数组的每个元素上调用Model#save,如下图所示。这段代码不起作用,我的猜测是,当我调用doc.save() 时,我并没有在识别为猫鼬模型实例的对象上执行此操作。我该如何解决这个问题?
promises = [
User.findById(userId).exec(),
Post.findById(postId).exec()
];
var promisedDocs = Promise.all(promises) // Should resolve to [{ user: {} }, {post: {} }]
.then(function(results) {
results.map(function(result) {
// Extract the first property of object in array element.
var doc = result[Object.keys(result)[0]];
doc.someArrayProp.push(someValue);
doc.save();
});
});
【问题讨论】:
-
@JohnnyHK 那么,忽略提供给 results.map() 的函数的第一行,doc.save() 调用应该可以工作吗?