2015-08-13 56 views
1

我試圖做使用coffeescript和冰咖啡的腳本編程異步/等待風格。如何正確返回在冰咖啡的腳本

如果'未定義'的迴應是我得到的。

module.exports = update: (req, res) -> 
    await user = User.find({ id: 1 }).exec (err, user) -> 
     throw err if err? 

     console.log(err) # null 
     console.log(user) # object 

     defer user 

    console.log user # undefined 

回答

1

你的做法是行不通的,因爲await, defer冰鎮,CoffeeScript的語法使用略有不同。見#iced

你已經把deferawait代碼塊,但實際上使用了一個回調的await

編輯:回調函數丟失。

module.exports = update: (req, res) -> 

    findUser = (id, cb) -> 
    await user = User.find({ id: 1 }), defer err, user 
    if err then return [ err, null ] 
    cb err, user 

    await findUser id, defer result 

    console.log result.user 
+0

在此示例中,console.log用戶從不執行 – sed

+0

回調丟失。查看更新。 – frhd