Coffeescript的承诺。尝试将多个参数传递给`then`时出现“意外的逗号”错误?

时间:2014-12-21 04:32:46

标签: javascript coffeescript

我正在尝试使用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,所以可能会对其语法有一个根本的误解,但据我所知,看起来代码应该编译得很好。

我错过了什么?

2 个答案:

答案 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"