如何正确地返回冰咖啡的deferred对象

时间:2015-08-13 16:07:26

标签: coffeescript iced-coffeescript

我正在尝试使用coffeescript和iced coffeescript进行async / await编程风格。

如果'未定义'响应,我会得到什么。

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 个答案:

答案 0 :(得分:1)

您的方法无效,因为await, defer的iced-coffeescript语法使用方式略有不同。见#iced

您已将defer放入await代码块,但它实际上用作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