我正在尝试使用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
答案 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