如何在 iced coffeescript 中正确 return 延迟对象

How to properly return defered object in iced coffeescript

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

如果 'undefined' 响应,我会得到什么。

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

您的方法将不起作用,因为 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