2015-02-24 251 views
4

我有点与承诺模式在战斗的NodeJS猫鼬右承诺拒绝处理

我在寻找用户数据库,然后保存与用户参考新的实体,但是当用户不在分贝,我应该返回拒绝,但我不确定如何正确执行。

有没有办法如何更好地做到这一点?

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

您使用的是ES6承诺吗? – Bergi 2015-02-24 12:01:09

回答

3

您可以使用throwthen回调拒绝。或者,也可以使用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()