我认为这很简单,但我似乎无法让它发挥作用。我有两个过程。一个消费数据,然后另一个装饰它。它们通过队列服务连接。第一个“保存”文档,然后将第二个排队:
// 'post' is a mongoose object
post.save(function (err) {
if (!err) {
self.decorate('post', post.service, post.id);
}
});
服务二接收队列消息,然后尝试查询队列。但是没有找到该项目。该项目确实被写入,如果我在几秒钟后重新运行排队的消息,它会正确找到它。
看起来第二个服务正在尝试在写入完成之前运行。
如何强制 Mongoose 回调同步等待/执行?我试过在连接选项中添加“safe: true”。
最佳答案
请考虑在 save() 方法中使用 promise。
post.save().then(function (savedPost) {
self.decorate('post', savedPost.service, savedPost.id);
});
关于javascript - 强制 mongoose.save 回调等待写入完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27447478/