【问题标题】:How to properly return defered object in iced coffeescript如何在冰咖啡脚本中正确返回延迟对象
【发布时间】:2015-11-06 17:20:21
【问题描述】:

我正在尝试使用咖啡脚本和冰咖啡脚本进行异步/等待风格的编程。

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

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

【问题讨论】:

    标签: coffeescript iced-coffeescript


    【解决方案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
    

    【讨论】:

    • 在这个例子中console.log user 永远不会执行
    猜你喜欢
    • 2014-01-20
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多