Mongoose 正确承诺拒绝处理

Mongoose right promise rejection handling

我在 nodeJS 中与 promise 模式作斗争

我正在数据库中寻找用户,然后使用用户引用保存新实体,但是当用户不在数据库中时,我应该 return 拒绝,但我不确定如何正确执行.

有什么办法可以做得更好吗?

顺便说一句:对不起,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()
)

您可以在 then 回调中使用 throw 来拒绝它们。或者,您也可以使用 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()