我在nodeJS
中与promise模式斗争我在db中寻找用户,然后使用用户引用保存新实体,但是当用户不在db中时,我应该返回拒绝,但我不确定如何正确执行。
有没有办法如何做得更好?
顺便说一句,对不起,coffeescript: - [User.findOne({'fbId':userData.me.id}).exec().then((doc)->
if !doc? then return new Promise (resolve,reject)->reject(404)
video = new Video({
user:doc
state: "queue"
createdAt: new Date()
})
video.save().exec()
)
答案 0 :(得分:4)
您可以在throw
回调中使用then
来拒绝它们。或者,您也可以使用Promise.reject(404)
,而不是使用Promise
构造函数。
User.findOne
fbId:userData.me.id
.exec().then (doc)->
if !doc?
throw new Error 404
video = new Video
user: doc
state: "queue"
createdAt: new Date
video.save().exec()