2014-09-29 39 views
0

我試圖把這種Javascript代碼:這裏有更簡潔的Coffeescript成語嗎?

if(error) { 
    foo(); 
    return null; 
} 
bar() 

到CoffeeScript的代碼,其中這裏bar()是另一個長一段代碼,我不想縮進更多

有沒有更好的辦法比這個?

if error 
    foo() 
    return null 
bar() 
+1

也許你可以顯示更多的功能?我懷疑這是一個節點回調,併爲此有許多模式可以簡化。 – Bergi 2014-09-29 20:23:49

+0

是的,這是Node回調的第一個片段,但它如何改變這個問題?我正在尋求一種通用的方法。 否則,你會建議什麼? – mattecapu 2014-09-29 20:25:44

+0

@mattecapu你期待什麼更好的方式? – 2014-09-29 20:29:11

回答

2

你的代碼對我來說很不錯。

不過,如果你真的希望它是一個班輪,你可以採取括號的優勢:

return (foo(); null) if error 
+1

這就是我正在尋找的。不過也許是太簡潔了?你認爲它的可讀性較差嗎? – mattecapu 2014-09-29 20:52:40

+2

是的,可讀性較差。不要在生產中使用它。 – 2014-09-29 21:09:02

0

什麼

if error 
    foo() 
else 
    bar() 

(可能with a trailing return

+0

檢查已編輯的答案,這裏'bar()'確實是一個更大的代碼片段 – mattecapu 2014-09-29 20:18:05

+0

然後沒有任何更簡潔的內容(雖然我沒有看到縮進'bar'有什麼問題) – Bergi 2014-09-29 20:21:16

-1

你可以重寫它以另一種形式(略有不同symatically,因爲你返回的foo()的結果):

return foo() if error 
+0

我不想返回'foo()'的結果... – mattecapu 2014-09-29 20:19:11

相關問題