Javascript 有没有更简洁的咖啡脚本成语?

Javascript 有没有更简洁的咖啡脚本成语?,javascript,coffeescript,idioms,Javascript,Coffeescript,Idioms,我正在尝试翻译以下Javascript代码: if(error) { foo(); return null; } bar() 在Coffeescript代码中,这里的bar()是另一段很长的代码,我不想进一步缩进 还有比这更好的方法吗 if error foo() return null bar() 那怎么办 if error foo() else bar() (可能)您可以用另一种形式重写它(由于返回的是foo()的结果,所以在符号上略有不

我正在尝试翻译以下Javascript代码:

if(error) {
    foo();
    return null;
}
bar()
在Coffeescript代码中,这里的
bar()
是另一段很长的代码,我不想进一步缩进

还有比这更好的方法吗

if error
    foo()
    return null
bar()
那怎么办

if error
    foo()
else
    bar()

(可能)

您可以用另一种形式重写它(由于返回的是foo()的结果,所以在符号上略有不同):


你的代码对我来说很好

不过,如果您真的希望它是一行,您可以利用括号:

return (foo(); null) if error

检查编辑后的答案,这里的
bar()
确实是一个更大的代码块,那么就没有更简洁的东西了(尽管我看不出缩进
bar
有什么问题),也许您可以显示更多的函数?我怀疑这是一个节点回调,因此有许多模式需要简化。是的,这是节点回调的第一个片段,但它如何改变这个问题?我要求的是一个通用的方法。否则,你会有什么建议?@mattecapu你期待的更好的方式是什么?@mattecapu:我建议使用承诺。或者,取决于
foo
是什么,回调周围有一些通用的高阶包装器。当然,这是一个可行的选择,但作为coffeescript的新手,我想看看如何操作这些表达式。除此之外,我还是要用承诺。这就是我想要的。然而,也许是太过简洁了?你认为它可读性差吗?
return (foo(); null) if error