我正在尝试使用Coffeescript中的Promises进行一些工作,但是,我遇到了一个我无法弄清楚的语法错误。它似乎不接受then
方法接受两个参数。
示例:
slowTask = (num) ->
new Promise((resolve, reject) ->
if (num == 1)
resolve(num)
else
reject(num)
)
slowTask(1).then((data) -> console.log("foo"), () -> console.log("bar"))
似乎它应该有用,但我反而失败了:
Error on line 9: unexpected ,
不可否认,我只花了几个小时进入coffeescript,所以可能会对其语法有一个根本的误解,但据我所知,看起来代码应该编译得很好。
我错过了什么?
答案 0 :(得分:1)
CoffeeScript无法理解逗号正在做什么。
如果您要在同一行上有多个函数语句,则需要在整个函数周围加上括号:
slowTask(1).then ((data) -> console.log("foo")), (() -> console.log("bar"))
答案 1 :(得分:0)
除了meagar的评论之外,如果你在几行中破坏代码,你可以使用逗号,如下所示:
slowTask(1).then (data) ->
console.log "foo"
, ->
console.log "bar"