我正在尝试使用冰咖啡脚本重写 hubot 脚本。这是我原来的常规(热门?)CoffeeScript 代码:
getHost = (msg, artifact, cb) ->
url = "http://myapi.org/api/hosts-for/artifact/#{artifact}"
msg.http(url)
.get() (err, res, body) ->
cb(body)
请注意, msg.http() 正在调用 Scoped http 客户端,您可以在此处找到:https ://github.com/technoweenie/node-scoped-http-client
我想把它变成一个不使用回调但等待api响应并返回它的函数。这是我将上述内容转换为 ICS 的尝试:
getHostAwait = (msg, artifact) ->
url = "http://myapi.org/api/hosts-for/artifact/#{artifact}"
await msg.http(url)
.get() (err, res, body) ->
defer(body)
body
但是,主体似乎没有被返回(它是未定义的)。我怎样才能让这个代码工作?