在冰咖啡脚本中使用autocb返回多个值

时间:2014-01-02 14:26:43

标签: iced-coffeescript

如何使用iced coffee scriptreturnautocb中返回情侣值?

没有autocb我可以这样做:

func = (cb)=>
   cb returnVal1, returnVal2

如何使用autocb实现此目的?这段代码......

func = (autocb)=>
   return returnVal1, returnVal2 

...抛出错误:

SyntaxError: unexpected ,

2 个答案:

答案 0 :(得分:1)

您收到错误,因为您无法在JavaScript中返回多个值。您可以将两个值包装在一个数组中,并在调用后对其进行解构...

func = (autocb)=>
   return [returnVal1, returnVal2] 

await func defer(returnVals)
[returnVal1, returnVal2] = returnVals

...但你应该只使用你的第一个例子。 autocb是简单的语法糖(一个参数而不是一行),并且根本不需要使用IcedCoffeeScript。

答案 1 :(得分:0)

解构将如下所述:https://github.com/maxtaco/coffee-script/issues/29

func = (thing, autocb) ->
   thing1 = doSomething(thing)
   thing2 = doSomethingElse(thing)

   {thing1, thing2}


await funct thing, defer {thing1, thing2}

console.log "#{thing1} and #{thing2}"