【发布时间】:2017-01-30 18:11:29
【问题描述】:
这是使用回调的工作代码(咖啡脚本中的 this)
requestUtils.post = (path, data) ->
requestUtils.request.post(
"#{requestUtils.apiHostname}#{path}",
{ json: data },
logFn
)
当我运行它时,我看到记录了 HTTP 响应。我想将logFn 回调转换为resolve。
这是我的尝试:
requestUtils.post = (path, data) ->
new Promise (resolve, reject) ->
requestUtils.request.post(
"#{requestUtils.apiHostname}#{path}",
{ json: data },
resolve
)
看起来很简单。当我调用该函数并像这样传递一个承诺处理程序时:
GM.requestUtils.post("/getVehicleInfoService", {id: "#{id}"})
.then () ->
console.dir arguments
当我运行它时,我没有看到任何打印内容。 then 处理程序似乎没有被调用。我不确定为什么。我以为我掌握了承诺,但显然没有
【问题讨论】:
-
你不会像
.then(args => console.dir(args))一样将任何返回的参数传递给then的回调
标签: javascript coffeescript promise