这是已经需要Mongoose和Bluebird的node.js。
我没有承诺,有以下内容:
Post.create({
title: "How to cook the best burger pt 4",
content: "Mustard!"
}, (err,post) => {
console.log(post);
User.findOne({name: 'Bob Belcher'}, (err,user) => {
console.log('found user')
user.posts.push(post)
user.save((err,data) => {
console.log(data)
})
})
})
我想转换为使用Promises。 我的尝试(不起作用)如下:
var postPromise = Post.create({
title: "How to cook the best burger pt 4",
content: "Mustard!"
}
postPromise
.then((post) => {
return User.findOne({'name': 'Bob Belcher'}).exec()
}
.then((user) => {
user.posts.push(post) // <--- this post was within the scope of previous thenable hence inaccessible here
return user.save()
})
.catch((err) => {
console.log(err)
})
问题是我不确定如何将'post'从'post'promise子句传递给'user',以便我可以将它实际插入到数据库中。使用回调地狱,所有内容都是嵌套的,因此所有父变量都在范围内且易于访问。我仍然试图将我的大脑映射到以承诺的方式思考。我希望这很清楚。感谢。