2015-02-24 177 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()