咖啡脚本中的承诺.尝试将多个参数传递给“then”时出现“意外逗号”错误

Promises in Coffeescript. `unexpected comma` error when trying to pass multiple arguments to `then`?

本文关键字:then 意外 错误 意外逗号 承诺 脚本 参数传递 咖啡      更新时间:2023-09-26

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

我错过了什么?

CoffeeScript 无法理解逗号在做什么。

如果你

要在同一行上有多个函数语句,你需要在整个函数两边加上括号:

slowTask(1).then ((data) -> console.log("foo")), (() -> console.log("bar"))

除了meagar的评论之外,如果你在几行中破坏代码,你可以使用逗号,如下所示:

slowTask(1).then (data) ->
  console.log "foo"
, ->
   console.log "bar"